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 sous windows - cannot import name '_win32stdio'

+2 votes

Avec Python35, j'ai installé crossbar.
J'ai pu faire l'init :

crossbar init --template hello:python --appdir hello

Mais lorsque j'essaye de lancer hello :

cd hello
crossbar start

J'ai cette erreur :

from twisted.internet import _win32stdio
ImportError: cannot import name '_win32stdio'

J'ai donc installé pypiwin32, mais rien n'y fait :'(

pip install pypiwin32
demandé 29-Jun-2016 par Johjo (220 points)
edité 29-Jun-2016 par max

Utilise le vote et les check valider les questions qui t'ont aidé.

2 Réponses

0 votes
 
Meilleure réponse

Pour résumer, c'est un bug connu.
Twisted ne fonctionne pas en Python35 sous Windows.

La solution de Sam : Utiliser crossbar avec Python27. Vu qu'il n'y a pas de développement autour de crossbar, cela n'est pas génant. Un virtualenv pour crossbar sous Python27, un virtualenv sous Python35 pour les autres modules.

répondu 30-Jun-2016 par Johjo (220 points)
sélectionné 4-Jul-2016 par Johjo
+2 votes

Un des possibilités :

pip install twisted-win

Si ça ne marche pas, il essaye d'installer twisted et pypiwin32 avec:

py -3.5 -m pip install 

Et non juste

pip install

Au cas où tu ais plusieurs installations de Python sur ton ordi.

répondu 29-Jun-2016 par Sam (4,978 points)

Ca améliore un peu la situation, mais j'ai un second message qui apparait :

Failed to start native worker: No module named 'twisted.internet._dumbwin32proc'
crossbar.error.cannot_start: Failed to start native worker: No module named 'twisted.internet._dumbwin32proc' []

Après quoi ?

Visblement bug de twisted pour Python 3 sous windows: https://twistedmatrix.com/trac/ticket/7963 Pas de chance.

Après

pip install twisted-win
crossbar start

Bah, c'est la vie.
Le ticket a 12 mois. Je pense que c'est mort.

Je vais essayer avec asyncio. J'ai réussi à faire tourner un de leur exemple echo. C'est un test websocket etnnon wamp, mais ça donne de l'espoir.

Et si vraiment ça passe pas, j'utiliserai ubuntu. De toute manière, Kivy, ou plutôt python for android, ne fonctionne pleinement que sous Linux je crois.

Merci pour le coup de main :)

Non tu es baisé. Crossbar utilise twisted, pas asyncio. Seul les clients peuvent utiliser asyncio. Donc si tu veux installer crossbar, tu l'as dans l'os. Tu es tenu de l'installer avec Python 2.7. Après rien ne t'empeche d'avoir Python 2 et 3 installé sur ta machines. Tu lances crossbar depuis Python 2, et tu dev ton client avec Python 3. En effet, crossbar n'est qu'un router, on y touche plus une fois qu'il est lancé. Moi par exemple, ça m'est arrivé de lancer crossbar sur un raspberry py ou d'utiliser l'instance de test (http://crossbar.io/docs/Demo-Instance/) pour pas me faire chier.

Super intéressante comme remarque.

On est bien d'accord qu'il n'y a pas de développement à faire autour de crossbar, seulement du paramétrage ?

Si c'est bien le cas, Python27 sera amplement suffisant. En plus, il est déjà installé, il me reste plus qu'à configurer mon virtualenv.

Et pour le client, j'utiliserai Autobahn avec asyncio, et en théorie, ça devrait marcher en python35 (je dis en théorie, parce que la pratique...)

J'ai tout compris ? :)

Par contre, cette histoire de demo de crossbar, c'est un router qui tourne en permanence ? Je peux commencer à tester mes trucs sans avoir de router sur mon poste ? C'est fabuleux !

T'as tout pigé.

...