web-dev-qa-db-ja.com

OSError:dlopen(libSystem.dylib、6):画像が見つかりません

MacをEl Capitan 10.11にアップデートしました。 Django 1.6をCelery 3.1で実行しようとしていますが、このエラーが発生しています。

Unhandled exception in thread started by <function wrapper at 0x10f861050>
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/Django/utils/autoreload.py", line 93, in wrapper
    fn(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/Django/core/management/commands/runserver.py", line 101, in inner_run
    self.validate(display_num_errors=True)
  File "/Library/Python/2.7/site-packages/Django/core/management/base.py", line 310, in validate
    num_errors = get_validation_errors(s, app)
  File "/Library/Python/2.7/site-packages/Django/core/management/validation.py", line 34, in get_validation_errors
    for (app_name, error) in get_app_errors().items():
  File "/Library/Python/2.7/site-packages/Django/db/models/loading.py", line 196, in get_app_errors
    self._populate()
  File "/Library/Python/2.7/site-packages/Django/db/models/loading.py", line 75, in _populate
    self.load_app(app_name, True)
  File "/Library/Python/2.7/site-packages/Django/db/models/loading.py", line 99, in load_app
    models = import_module('%s.models' % app_name)
  File "/Library/Python/2.7/site-packages/Django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/Library/Python/2.7/site-packages/debug_toolbar/models.py", line 9, in <module>
    dt_settings.patch_all()
  File "/Library/Python/2.7/site-packages/debug_toolbar/settings.py", line 215, in patch_all
    patch_root_urlconf()
  File "/Library/Python/2.7/site-packages/debug_toolbar/settings.py", line 203, in patch_root_urlconf
    reverse('djdt:render_panel')
  File "/Library/Python/2.7/site-packages/Django/core/urlresolvers.py", line 503, in reverse
    app_list = resolver.app_dict[ns]
  File "/Library/Python/2.7/site-packages/Django/core/urlresolvers.py", line 329, in app_dict
    self._populate()
  File "/Library/Python/2.7/site-packages/Django/core/urlresolvers.py", line 267, in _populate
    for pattern in reversed(self.url_patterns):
  File "/Library/Python/2.7/site-packages/Django/core/urlresolvers.py", line 365, in url_patterns
    patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
  File "/Library/Python/2.7/site-packages/Django/core/urlresolvers.py", line 360, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/Library/Python/2.7/site-packages/Django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/Users/pedrotorres/Documents/work/projects/bparts/netpecasv2/urls.py", line 10, in <module>
    url(r'', include('Common.urls')),
  File "/Library/Python/2.7/site-packages/Django/conf/urls/__init__.py", line 26, in include
    urlconf_module = import_module(urlconf_module)
  File "/Library/Python/2.7/site-packages/Django/utils/importlib.py", line 40, in import_module
    __import__(name)
  File "/Users/pedrotorres/Documents/work/projects/bparts/Common/urls.py", line 3, in <module>
    from APIMobile.views import request_product_info_by_qrcode
  File "/Users/pedrotorres/Documents/work/projects/bparts/APIMobile/views.py", line 9, in <module>
    from Common.views import resizeImage, token_generator, getWatermarkImage, filterProductsByBrandModelVersionYear, \
  File "/Users/pedrotorres/Documents/work/projects/bparts/Common/views.py", line 34, in <module>
    from Common.tasks import turn_off_demo_mode_new_workshop
  File "/Users/pedrotorres/Documents/work/projects/bparts/Common/tasks.py", line 3, in <module>
    from netpecasv2.celeryapp import app
  File "/Users/pedrotorres/Documents/work/projects/bparts/netpecasv2/celeryapp.py", line 5, in <module>
    from celery import Celery
  File "/Library/Python/2.7/site-packages/celery/__init__.py", line 130, in <module>
    from celery import five
  File "/Library/Python/2.7/site-packages/celery/five.py", line 51, in <module>
    from kombu.five import monotonic
  File "/Library/Python/2.7/site-packages/kombu/five.py", line 52, in <module>
    libSystem = ctypes.CDLL('libSystem.dylib')
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ctypes/__init__.py", line 365, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: dlopen(libSystem.dylib, 6): image not found

以前はすべてうまくいきました。これを修正する解決策が見つかりません。私はこのスレッドを見たが動作しない: "OSError:dlopen(libSystem.dylib、6):image not found"(OS X + macports + Celery 3.1.7)

以前はDYLD_FALLBACK_LIBRARY_PATHがありませんでした。私がしようとしました:

export DYLD_FALLBACK_LIBRARY_PATH="/usr/lib":$DYLD_FALLBACK_LIBRARY_PATH

しかし、Pythonは、「/ usr/lib」の下にあるにもかかわらず、ライブラリを見つけることができません。

誰かがこのような問題を抱えていますか?

15
pedrotorres

OSX El Capitanの System Integrity Protection(SIP)/usr/libフォルダーへのアクセスを妨げていると思います(ただし確認できません)。

これは極端であり、セキュリティ機能の目的を無効にしますが、OS Xリカバリパーティションを起動し、csrutil disableを実行して再起動することにより、SIP別のオプション/回避策を見つけることができます。

ArsTechnicaの記事はこちら: http://arstechnica.com/Apple/2015/09/os-x-10-11-el-capitan-the-ars-technica-review/9/ =

そして、同様の問題がここで説明されています: http://blog.honekamp.net/blog/2015/09/07/el-cap-and-my-printer/

ここでハッカーニュースに関する詳細な議論: https://news.ycombinator.com/item?id=10309576

13
Joe Young
pip install --upgrade billiard
pip install --upgrade celery
pip install --upgrade kombu
pip install --upgrade amqp

これはうまくいくはずです。

11
Tiexin Guo

OSをOS X El Captainにアップグレードした直後にも同じ問題に遭遇しました。 SIP=を無効にするとうまくいきますが、サイトパッケージのいくつかのモジュールでfive.pyを更新するのが苦手な場合は役立ちます(私はそれがいいことではないことを知っていますが、それでも問題ありません)あなたが何をしているか知っているので)

DLLにアクセスする場所を次のモジュールの絶対パスに更新します

line 145 of site-packages/amqp/five.py 
line 52 of site-packages/kombu/five.py 
line 42 of site-packages/billiard/five.py 

更新:

libSystem = ctypes.CDLL('libSystem.dylib') => libSystem = ctypes.CDLL('/usr/lib/libSystem.dylib')

お役に立てれば ;)

3
njs

「ビリヤード、セロリ、コンブ、amqp」の4つのパッケージをアンインストールします。次にgithubから最新バージョンを再インストールしてこれを解決しました

3
Kevin.Xin

セロリを機能させるために同じ問題に遭遇しました。

私はいくつかの簡単なテストを行いましたが、ここに私が見つけたものがありますが、まだ特定の原因に完全にピン留めすることはできません:

a。 stock python with ctypes.CDLL( "libSystem.dylib")の結果、画像が見つからないというエラーが発生します。

b。 stock python with ctypes.CDLL( "/ usr/lib/libSystem.dylib")は機能します

c。 virtualenv python with ctypes.CDLL( "libSystem.dylib")は機能します

2
Eric Wang

Githubからこれらのライブラリを最新バージョンに更新してみましたが、役に立ちませんでした。私が見つけた最も簡単な解決策は virtualenv を使用することです

virtualenv myenv
cd myenv
source bin/activate
pip install celery

それが機能したことを確認するには:

python -c "import celery"

これは、OSの基本的なセキュリティ機能を無効にするよりも望ましいようです。virtualenvには、独自の(十分に文書化された)利点があります。

0
chadrik

私の場合、エラーはHomebrewがgettextに適切にシンボリックリンクしていないためです。私はこれを使って解決しました

brew unlink gettext && brew link --force gettext
0
Leonardo

現在のセロリのバージョンを削除してから http://pypi.python.org/pypi/celery/ からダウンロードし、ソースコードをビルドしてインストールすることができます。私もそう願っています。

0
dyljqq

再インストールpython私の問題は解決しました。brewを使用すると、もう一度_brew install python_を実行できます。_/usr/local_への書き込み権限が必要であると表示された場合は、次の方法で権限を変更してくださいSudo chown -R $(whoami):admin /usr/local、次にpythonをインストールします。

0
user2197967