shapely
库尝试通过使用ctypes.util.find_library('c')查找函数来从libc加载函数。
在使用Apple提供的系统Python的“普通”Python环境中,这可以工作:
$ python -c 'from ctypes.util import find_library; print find_library("c")'
/usr/lib/libc.dylib
但是在Canopy virtualenv中,它失败了:
$ . /Users/tim/Library/Enthought/Canopy_64bit/User/bin/activate
(Canopy 64bit)$ python -c 'from ctypes.util import find_library; print find_library("c")'
None
为什么呢?我如何使这项工作?
答案 0 :(得分:1)
答案 1 :(得分:0)
这似乎来自ctypes.macholib.dyld.dyld_default_search中的这个逻辑:https://gist.github.com/tdsmith/5768065
[]
,对于Enthought为<{1}} ['/Users/tim/Library/Enthought/Canopy_64bit/User/lib', '/Users/tim/Library/Enthought/Canopy_64bit/System/lib', '/Applications/Canopy.app/appdata/canopy-1.0.0.1160.macosx-x86_64/Canopy.app/Contents/lib']
)。设置DYLD_FALLBACK_LIBRARY_PATH使这项工作:
['/Users/tim/lib', '/usr/local/lib', '/lib', '/usr/lib']
我觉得这是某人的错误 - 也许是ctypes'。 (回退路径不应只是后备吗?)