cyb*_*mon 5 python macos jenkins
我在 Mac 上使用sudo easy_install python-jenkins. 安装很顺利,没有错误,但是当我打开 python 并输入时,import jenkins出现以下错误。
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "build/bdist.macosx-10.7-intel/egg/jenkins.py", line 9, in <module>
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(/Library/Python/2.7/site-packages/lookup3.so, 6): image not found
Run Code Online (Sandbox Code Playgroud)
谷歌搜索并没有产生任何有用的结果。
编辑后回溯
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "jenkins.py", line 9, in <module>
lookup3 = cdll.LoadLibrary(os.path.join(get_python_lib(), "lookup3.dynlib"))
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 431, in LoadLibrary
return self._dlltype(name)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 353, in __init__
self._handle = _dlopen(self._name, mode)
OSError: dlopen(/Library/Python/2.7/site-packages/lookup3.dynlib, 6): image not found
Run Code Online (Sandbox Code Playgroud)
有问题的模块与 Mac OS X 动态库约定不兼容。
它尝试加载一个lookup3.so文件,但在 Mac 上它会加载lookup3.dynlib。您可以通过查看/Library/Python/2.7/site-packages目录来验证这一点。然后只需编辑jenkins.py模块并将.so扩展名替换为.dynlib.
我还会将此报告给模块的问题跟踪器;一个简单的if platform.system() == 'Darwin':开关就可以让东西跨平台加载。
更新:实际上,模块顽固地期望lookup3.so模块位于site-packages目录中而不是模块本身。因此它与 easy_install 不兼容。当您将所有文件(未更改)从.egg目录直接移到您的/Library/Python/2.7/site-packages/目录中时,它将起作用。
| 归档时间: |
|
| 查看次数: |
3102 次 |
| 最近记录: |