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」の下にあるにもかかわらず、ライブラリを見つけることができません。
誰かがこのような問題を抱えていますか?
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
pip install --upgrade billiard
pip install --upgrade celery
pip install --upgrade kombu
pip install --upgrade amqp
これはうまくいくはずです。
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')
お役に立てれば ;)
「ビリヤード、セロリ、コンブ、amqp」の4つのパッケージをアンインストールします。次にgithubから最新バージョンを再インストールしてこれを解決しました
セロリを機能させるために同じ問題に遭遇しました。
私はいくつかの簡単なテストを行いましたが、ここに私が見つけたものがありますが、まだ特定の原因に完全にピン留めすることはできません:
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")は機能します
Githubからこれらのライブラリを最新バージョンに更新してみましたが、役に立ちませんでした。私が見つけた最も簡単な解決策は virtualenv を使用することです
virtualenv myenv
cd myenv
source bin/activate
pip install celery
それが機能したことを確認するには:
python -c "import celery"
これは、OSの基本的なセキュリティ機能を無効にするよりも望ましいようです。virtualenvには、独自の(十分に文書化された)利点があります。
私の場合、エラーはHomebrewがgettextに適切にシンボリックリンクしていないためです。私はこれを使って解決しました
brew unlink gettext && brew link --force gettext
現在のセロリのバージョンを削除してから http://pypi.python.org/pypi/celery/ からダウンロードし、ソースコードをビルドしてインストールすることができます。私もそう願っています。
再インストールpython私の問題は解決しました。brewを使用すると、もう一度_brew install python
_を実行できます。_/usr/local
_への書き込み権限が必要であると表示された場合は、次の方法で権限を変更してくださいSudo chown -R $(whoami):admin /usr/local
、次にpythonをインストールします。