Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何列出.so在python脚本上加载的文件?_Python_Linux_Tensorflow_Shared Libraries - Fatal编程技术网

如何列出.so在python脚本上加载的文件?

如何列出.so在python脚本上加载的文件?,python,linux,tensorflow,shared-libraries,Python,Linux,Tensorflow,Shared Libraries,如何列出python脚本上加载的所有.so文件(完整路径) 是否可以获取(例如)libcudart.so.10.1的完整路径? 是否可以获取已加载的.so(完整路径)的列表 例如,我正在跑步: python -c "import tensorflow as tf; tf.test.is_gpu_available()" 输出: 2019-09-27 15:02:27.186029: I tensorflow/stream_executor/platform/default/dso_loader

如何列出python脚本上加载的所有.so文件(完整路径)

是否可以获取(例如)
libcudart.so.10.1
的完整路径? 是否可以获取已加载的.so(完整路径)的列表

例如,我正在跑步:

python -c "import tensorflow as tf; tf.test.is_gpu_available()"
输出:

2019-09-27 15:02:27.186029: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcuda.so.1
2019-09-27 15:02:27.657901: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 0 with properties:
name: TITAN RTX major: 7 minor: 5 memoryClockRate(GHz): 1.77
pciBusID: 0000:17:00.0
2019-09-27 15:02:27.658580: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1640] Found device 1 with properties:
name: TITAN RTX major: 7 minor: 5 memoryClockRate(GHz): 1.77
pciBusID: 0000:65:00.0
2019-09-27 15:02:27.658766: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.1
2019-09-27 15:02:27.659868: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcublas.so.10
2019-09-27 15:02:27.661073: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcufft.so.10
2019-09-27 15:02:27.661305: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcurand.so.10
2019-09-27 15:02:27.662477: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcusolver.so.10
2019-09-27 15:02:27.663054: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcusparse.so.10
2019-09-27 15:02:27.665455: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudnn.so.7
2019-09-27 15:02:27.667986: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1763] Adding visible gpu devices: 0, 1
2019-09-27 15:02:27.668031: I tensorflow/stream_executor/platform/default/dso_loader.cc:42] Successfully opened dynamic library libcudart.so.10.1
2019-09-27 15:02:27.669523: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1181] Device interconnect StreamExecutor with strength 1 edge matrix:
2019-09-27 15:02:27.669535: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1187]      0 1
2019-09-27 15:02:27.669542: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 0:   N N
2019-09-27 15:02:27.669546: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1200] 1:   N N
2019-09-27 15:02:27.674204: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/device:GPU:0 with 22845 MB memory) -> physical GPU (device: 0, name: TITAN RTX, pci bus id: 0000:17:00.0, compute capability: 7.5)
2019-09-27 15:02:27.675838: I tensorflow/core/common_runtime/gpu/gpu_device.cc:1326] Created TensorFlow device (/device:GPU:1 with 22823 MB memory) -> physical GPU (device: 1, name: TITAN RTX, pci bus id: 0000:65:00.0, compute capability: 7.5)

在Linux下运行时,根据您的环境,您可以使用以下选项之一获取信息:

  • ld.so调试标志
  • 斜射
  • 使用ld.so debug标志,可以在运行python代码之前通过将ld_debug环境变量设置为'libs'(甚至'all')来激活调试模式(取决于shell:export ld_debug=libs或setenv ld_debug libs)。动态加载的库搜索路径将显示给stderr

    查看ld.so手册页了解更多选项

    示例输出-来自LD_DEBUG=libs(使用python“导入json”)


    作为替代方案,可以使用strace,但解析它的输出需要付出更多的努力。“stat”行可以提供关于每个库的搜索路径的信息。

    实际加载了。调用init的
    行也是如此。
    ?似乎我也不能只对cuda相关的库进行grep,比如:
    LD\u DEBUG=libs python-c“将tensorflow导入为tf;tf.test.\u gpu可用吗()”| grep cuda
    注意,LD_DEBUG的输出变成标准错误。grep的简单方法是将stderr放入一个文件(python…2>/tmp/myerr.out),然后grep您想要在/tmp/myerr.out中的库,其工作方式如下:
    CUDA\u VISIBLE\u DEVICES='1'LD\u DEBUG=libs python-c“import tensorflow as tf;tf.test.is\u gpu\u可用()”2>&1;grep CUDA
    owner@vm1:~/Project/stackoverflow/58152351$ python
         28796: find library=libc.so.6 [0]; searching
         28796:  search cache=/etc/ld.so.cache
         28796:   trying file=/lib/x86_64-linux-gnu/libc.so.6
         28796: 
         28796: find library=libpthread.so.0 [0]; searching
         28796:  search cache=/etc/ld.so.cache
         28796:   trying file=/lib/x86_64-linux-gnu/libpthread.so.0
         28796: 
         28796: find library=libdl.so.2 [0]; searching
         28796:  search cache=/etc/ld.so.cache
         28796:   trying file=/lib/x86_64-linux-gnu/libdl.so.2
    ...
    >>> import json
         28796: 
         28796: calling init: /usr/lib/python2.7/lib-dynload/_json.x86_64-linux-gnu.so
         28796: