Bienvenue sur IndexError.

Ici vous pouvez poser des questions sur Python et le Framework Django.

Mais aussi sur les technos front comme React, Angular, Typescript et Javascript en général.

Consultez la FAQ pour améliorer vos chances d'avoir des réponses à vos questions.

Crossbar 0.12.1 - wsgi error - No module named django

+3 votes

Depuis la mise a jour en 0.12.1, j'ai une erreur lors du lancement de mon projet Django qui tournait et tourne encore tres bien en 0.11 :

[Controller 210] crossbar.error.invalid_configuration: 
WSGI app module 'myproject.wsgi' import failed: No module named django - 
Python search path was [u'/myproject', '/opt/crossbar/site-packages/crossbar/worker', '/opt/crossbar/bin', '/opt/crossbar/lib_pypy/extensions', '/opt/crossbar/lib_pypy', '/opt/crossbar/lib-python/2.7', '/opt/crossbar/lib-python/2.7/lib-tk', '/opt/crossbar/lib-python/2.7/plat-linux2', '/opt/crossbar/site-packages']

Même erreur si je reprend le tutoriel sur le wsgi dispo dans la doc de crossbar :
http://crossbar.io/docs/WSGI-Host-Service/

" WSGI app module 'myapp' import failed: No module named flask "

En detail :

2016-02-11T12:05:51+0000 [Router        170] NativeWorkerSession.onUserError
Traceback (most recent call last):
  File "/opt/crossbar/site-packages/autobahn/twisted/websocket.py", line 165, in _onMessage
    self.onMessage(payload, isBinary)
  File "/opt/crossbar/site-packages/autobahn/wamp/websocket.py", line 90, in onMessage
    self._session.onMessage(msg)
  File "/opt/crossbar/site-packages/autobahn/wamp/protocol.py", line 755, in onMessage
    on_reply = txaio.as_future(endpoint.fn, *invoke_args, **invoke_kwargs)
  File "/opt/crossbar/site-packages/txaio/tx.py", line 339, in as_future
    return maybeDeferred(fun, *args, **kwargs)
--- <exception caught here> ---
  File "/opt/crossbar/site-packages/twisted/internet/defer.py", line 150, in maybeDeferred
    result = f(*args, **kw)
  File "/opt/crossbar/site-packages/crossbar/worker/router.py", line 795, in start_router_transport
    root = self._create_resource(root_config, nested=False)
  File "/opt/crossbar/site-packages/crossbar/worker/router.py", line 969, in _create_resource
    raise ApplicationError(u"crossbar.error.invalid_configuration", "WSGI app module '{}' import failed: {} - Python search path was {}".format(mod_name, e, sys.path))
autobahn.wamp.exception.ApplicationError: ApplicationError(error=<crossbar.error.invalid_configuration>, args=["WSGI app module 'myapp' import failed: No module named flask - Python search path was [u'/root/flask', '/opt/crossbar/site-packages/crossbar/worker', '/usr/bin', '/opt/crossbar/lib_pypy/__extensions__', '/opt/crossbar/lib_pypy', '/opt/crossbar/lib-python/2.7', '/opt/crossbar/lib-python/2.7/lib-tk', '/opt/crossbar/lib-python/2.7/plat-linux2', '/opt/crossbar/site-packages']"], kwargs={}, enc_algo=None)

2016-02-11T12:05:51+0000 [Controller    165] crossbar.error.invalid_configuration: WSGI app module 'myapp' import failed: No module named flask - Python search path was [u'/root/flask', '/opt/crossbar/site-packages/crossbar/worker', '/usr/bin', '/opt/crossbar/lib_pypy/__extensions__', '/opt/crossbar/lib_pypy', '/opt/crossbar/lib-python/2.7', '/opt/crossbar/lib-python/2.7/lib-tk', '/opt/crossbar/lib-python/2.7/plat-linux2', '/opt/crossbar/site-packages']

Django, comme Flask, fonctionne tres bien en dehors de crossbar.
Je tourne sur un conteneur docker tout frais avec python 2.7.

Quelqu'un arrive t il a reproduire l'erreur avec cette nouvelle version ou suis je le seul ?
Auriez vous une idée du pourquoi ?

demandé 11-Fev-2016 par Nasjo (142 points)

Oui je suis sûr de la version ;)

2016-02-15T09:07:08+0100 [Controller   9900] Automatically choosing optimal Twisted reactor
2016-02-15T09:07:08+0100 [Controller   9900] Running on Linux and optimal reactor (epoll) was installed.
2016-02-15T09:07:08+0100 [Controller   9900]      __  __  __  __  __  __      __     __
2016-02-15T09:07:08+0100 [Controller   9900]     /  `|__)/  \/__`/__`|__) /\ |__)  |/  \
2016-02-15T09:07:08+0100 [Controller   9900]     \__,|  \\__/.__/.__/|__)/~~\|  \. |\__/
2016-02-15T09:07:08+0100 [Controller   9900]                                         
2016-02-15T09:07:08+0100 [Controller   9900]     Crossbar.io Version: 0.12.1

@foxmask

ne veux-tu pas essayer dans un docker pour ôter tout doute?

Lol, nan , pour l'heure, docker on se boude

attends que j'me chauffe et je te ferais bien une petite démo dans le thème "docker c bien" un de ces 4

Oui, voila, c'est un peu la merdum leur tuto, ils sont pas a jour. Et lorsque je suis tombé sur mon erreur du début, j'ai d'abord pensé que ça venait de chez eux.
J'ai fait un ptit Docker qui semble bien tourner avec la 0.12. Je la colle en réponse, ça fera plus propre.

1 Réponse

+1 vote
 
Meilleure réponse

Alors, le docker officiel de Crossbar ne fonctionnant pas, je me suis bricolé le mien comme je pouvais.
Hésitez pas si vous voulez l'améliorer.

# Creation de l'image spécifique a l'application en cours.
FROM ubuntu
ENV APPNAME="monappli"

ADD requirements.txt /tmp/

RUN apt-get update
RUN apt-get install -y gcc build-essential python-dev python2.7-dev libxslt1-dev libssl-dev libxml2 libxml2-dev tesseract-ocr python-imaging libffi-dev libreadline-dev libbz2-dev libsqlite3-dev libncurses5-dev python-mysqldb python-pip

RUN cd /tmp/ && pip install -r requirements.txt
RUN pip install -U crossbar[all]

WORKDIR $APPNAME

CMD cd / && cd $APPNAME && python manage.py makemigrations && python manage.py migrate && crossbar start

Prenez un café en attendant, ya pas mal de choses à compiler.
Perso, voici mon requirements.txt :

ipython
django
djangorestframework
djangorestframework-jwt
django-cors-headers
bottlenose
python-amazon-simple-product-api
python-dateutil
beautifulsoup4
datetime
mechanize
pytesseract
requests
répondu 16-Fev-2016 par Nasjo (142 points)
sélectionné 17-Fev-2016 par boblinux

cool, mais ya moyen de leur remonter ça? car ya pas mal de gens qui ont ce pb sur le net, le tuto fou vraiment la me..de =/

Du coup le post peut passer en mode résolu?

Oui ! Toutafé ! Je ne sais toujours pas d’où venait l'erreur que j'ai eu avant. Pourquoi ça tournait avec la v0.11 et pas la 0.12, ça devait être un problème de pythonpath chelou, mais un nouvel environnement propre a résolu tout ceci.
J'avais ouvert un topic dans leur mailinglist, je leur répondrais avec ces infos rapidement.
Merci a tous :)

je pense que t'aurais du filer ton requirements.txt à SO ça aurait été plus clair (et essaye de garder le même pseudo ici et sur SO si possible au moins on pourra te reconnaître plus facilement ;) )

Bonne remarque :) Je mets a jour. Merci !

...