通过shebang行执行Python脚本显然会导致库错误

时间:2019-01-24 13:38:01

标签: python

问题: 通过直接使用脚本路径./myScript.py调用脚本来运行python脚本时,出现库加载错误。当我运行python myScript.py时不会发生该错误。

最小的工作示例脚本是:

#!/usr/bin/env python
import pyminc.volumes.factory as pyminc

错误是:

Something went wrong loading shared libraries ...Traceback (most recent call last):
  File "./py_version.py", line 5, in <module>
    import pyminc.volumes.factory as pyminc
  File "/Users/username/.local/lib/python2.7/site-packages/pyminc/volumes/factory.py", line 3, in <module>
    from .volumes import mincException, mincVolume, getDtype, transform_xyz_coordinates_using_xfm, transform_multiple_xyz_coordinates_using_xfm
  File "/Users/username/.local/lib/python2.7/site-packages/pyminc/volumes/volumes.py", line 1, in <module>
    from .libpyminc2 import *
  File "/Users/username/.local/lib/python2.7/site-packages/pyminc/volumes/libpyminc2.py", line 17, in <module>
    libminc = cdll.LoadLibrary("libminc2.so")
  File "/anaconda2/lib/python2.7/ctypes/__init__.py", line 444, in LoadLibrary
    return self._dlltype(name)
  File "/anaconda2/lib/python2.7/ctypes/__init__.py", line 366, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(libminc2.so, 6): image not found

解决方案尝试: 我怀疑通过每种方法运行脚本时都调用了不同版本的python,但是我是测试脚本:

#!/usr/bin/env python
import sys
print sys.executable
print sys.version
从路径./testScript.py并使用python testScript.py调用时,

返回相同的结果:

/anaconda2/bin/python
2.7.15 |Anaconda, Inc.| (default, May  1 2018, 18:37:05)
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]

因此,它看起来是相同的版本,并且在两种情况下都使用python安装。关于如何进一步调试的任何建议?

0 个答案:

没有答案