5

を使用して Mac に jenkins パッケージをインストールしました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

これをグーグルで検索しても、役立つ結果は得られませんでした。

編集後のトレースバック

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
4

4 に答える 4

3

問題のモジュールは、Mac OS X の動的ライブラリ規則と互換性がありません。

ファイルをロードしようとしlookup3.soますが、Maclookup3.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/

于 2012-08-31T10:53:39.420 に答える