Je viens de mettre à jour mon Mac avec El Capitan 10.11. J'essaie de lancer Django 1.6 avec Celery 3.1 et j'obtiens cette erreur maintenant:
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
Tout fonctionnait bien avant .. .. Ne trouve pas de solution à ce problème. J'ai vu ce fil, mais cela ne fonctionne pas: "OSError: dlopen (libSystem.dylib, 6): image non trouvée" (OS X + macports + Celery 3.1.7)
Je n'avais auparavant aucun DYLD_FALLBACK_LIBRARY_PATH. J'ai essayé de:
export DYLD_FALLBACK_LIBRARY_PATH="/usr/lib":$DYLD_FALLBACK_LIBRARY_PATH
mais Python ne trouve pas la bibliothèque alors qu'elle se trouve sous "/ usr/lib"
Quelqu'un a eu un problème comme ça?
Je soupçonne (mais je ne peux pas confirmer) que la protection de l’intégrité du système (SIP) d’OSX El Capitan empêche l’accès à votre dossier /usr/lib
.
Cela serait extrême et irait à l'encontre de l'objectif de la fonction de sécurité, mais vous pouvez essayer de désactiver SIP en démarrant dans la partition de récupération OS X, en exécutant csrutil disable
et en redémarrant ... au moins jusqu'à ce qu'une autre option/solution de contournement soit trouvée. .
ArsTechnica a rédigé un article ici: http://arstechnica.com/Apple/2015/09/os-x-10-11-el-capitan-the-ars-technica-review/9/
Et un problème similaire est décrit ici: http://blog.honekamp.net/blog/2015/09/07/el-cap-and-my-printer/
Plus de discussion sur Hacker News ici: https://news.ycombinator.com/item?id=10309576
pip install --upgrade billiard
pip install --upgrade celery
pip install --upgrade kombu
pip install --upgrade amqp
Cela devrait marcher.
Je désinstalle "ces quatre logiciels" billard, céleri, kombu, amqp ". Puis réinstallez la dernière version de github a résolu ce problème
J'ai également rencontré le même problème juste après la mise à niveau du système d'exploitation vers OS X El Captain. Désactiver SIP fait l'affaire, mais si quelqu'un ne se sent pas à l'aise pour le faire, la mise à jour de five.py dans quelques modules de paquet-site aidera. (Je sais que ce n'est pas si gentil, mais ça va tant que tu sais ce que tu fais)
Mettre à jour les espaces qui accèdent à la DLL pour avoir un chemin absolu dans les modules suivants
line 145 of site-packages/amqp/five.py
line 52 of site-packages/kombu/five.py
line 42 of site-packages/billiard/five.py
mise à jour de:
libSystem = ctypes.CDLL('libSystem.dylib') => libSystem = ctypes.CDLL('/usr/lib/libSystem.dylib')
j'espère que cela t'aides ;)
J'ai eu le même problème à faire fonctionner le céleri.
J'ai fait quelques tests rapides et voici ce que j'ai trouvé, mais je ne peux pas encore l'épingler sur une cause spécifique:
une. stock python avec ctypes.CDLL ("libSystem.dylib") provoque une erreur d'image non trouvée.
b. stock python avec ctypes.CDLL ("/ usr/lib/libSystem.dylib") fonctionne
c. virtualenv python avec ctypes.CDLL ("libSystem.dylib") fonctionne
J'ai essayé de mettre à jour github avec les dernières versions de ces bibliothèques, mais cela n'a pas aidé. La solution la plus simple que j'ai trouvée consiste à utiliser virtualenv
virtualenv myenv
cd myenv
source bin/activate
pip install celery
Pour confirmer cela a fonctionné:
python -c "import celery"
Cela semble préférable à la désactivation d’une fonctionnalité de sécurité fondamentale du système d’exploitation, et virtualenv présente ses propres avantages (bien documentés).
Vous pouvez supprimer la version actuelle du céleri, puis la télécharger à partir du répertoire http://pypi.python.org/pypi/celery/ , et créer et installer le code Sorce. Cela m’est utile et j’espère bien le faites vous.
Réinstaller Python a résolu le problème pour moi. En utilisant brew, vous pouvez simplement brew install python
à nouveau. Si le message indique que vous avez besoin d'une autorisation pour écrire dans /usr/local
, essayez de modifier les autorisations par Sudo chown -R $(whoami):admin /usr/local
, puis installez python.