web-dev-qa-db-fra.com

OSError: dlopen (libSystem.dylib, 6): image non trouvée

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?

13
pedrotorres

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

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

Cela devrait marcher.

10
Tiexin Guo

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 

3
Kevin.Xin

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 ;)

2
njs

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

2
Eric Wang

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).

0
chadrik

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.

0
dyljqq

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.

0
user2197967