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.

[wamp] le fichier .crossbar/config.json

+2 votes

chemin faisant mes composants fonctionnant tranquillement je me suis dit et si je les mettais au sein d'un crossbar apres avoir fait un

crossbar  init --template hello:python --appdir $PWD/wamp-th

et j'herite d'un .crossbar/config.json classique

{
     "controller": {
     },
     "workers": [
    {
       "type": "router",
       "options": {
          "pythonpath": [".."]
       },
       "realms": [
          {
         "name": "realm1",
         "roles": [
            {
               "name": "anonymous",
               "permissions": [
              {
                 "uri": "*",
                 "publish": true,
                 "subscribe": true,
                 "call": true,
                 "register": true
              }
               ]
            }
         ]
          }
       ],
       "transports": [
          {
         "type": "web",
         "endpoint": {
            "type": "tcp",
            "port": 8080
         },
         "paths": {
            "/": {
               "type": "static",
               "directory": "../hello/web"
            },
            "ws": {
               "type": "websocket"
            }
         }
          }
       ]
    },
    {
       "type": "container",
       "options": {
          "pythonpath": [".."]
       },
       "components": [
          {
         "type": "class",
         "classname": "hello.hello.AppSession",
         "realm": "realm1",
         "transport": {
            "type": "websocket",
            "endpoint": {
               "type": "tcp",
               "host": "127.0.0.1",
               "port": 8080
            },
            "url": "ws://127.0.0.1:8080/ws"
         }
          }
       ]
    }
     ]
}

auquel j'ai rajouté

          {
         "type": "class",
         "classname": "th_rss.rss.BackendComponent",
         "realm": "realm1",
         "transport": {
            "type": "websocket",
            "endpoint": {
               "type": "tcp",
               "host": "127.0.0.1",
               "port": 8080
            },
            "url": "ws://127.0.0.1:8080/ws"
         }
          },
          {
         "type": "class",
         "classname": "th_evernote.evernote.BackendComponent",
         "realm": "realm1",
         "transport": {
            "type": "websocket",
            "endpoint": {
               "type": "tcp",
               "host": "127.0.0.1",
               "port": 8080
            },
            "url": "ws://127.0.0.1:8080/ws"
         }
          },
          {
         "type": "class",
         "classname": "th_evernote.evernote.FrontendComponent",
         "realm": "realm1",
         "transport": {
            "type": "websocket",
            "endpoint": {
               "type": "tcp",
               "host": "127.0.0.1",
               "port": 8080
            },
            "url": "ws://127.0.0.1:8080/ws"
         }
          },

Seulement en demarrant crossbar, il hurle :

2015-02-25 23:01:54+0100 [Container    9227] ERROR: failed to import class th_evernote.evernote.FrontendComponent ("No module named api.client")
2015-02-25 23:01:54+0100 [Container    9227] session attached
2015-02-25 23:01:54+0100 [Controller   9221] Traceback (most recent call last):
2015-02-25 23:01:54+0100 [Controller   9221]   File "....Django-VirtualEnv/wamp-th/local/lib/python2.7/site-packages/crossbar/controller/node.py", line 191, in run_node_config
2015-02-25 23:01:54+0100 [Controller   9221]     yield self._run_node_config(config)
2015-02-25 23:01:54+0100 [Controller   9221] ApplicationError: ApplicationError('crossbar.error.cannot_import', args = ('ERROR: failed to import class th_evernote.evernote.FrontendComponent ("No module named api.client")', 'Traceback (most recent call last):\n  File "...Django-VirtualEnv/wamp-th/local/lib/python2.7/site-packages/crossbar/worker/container.py", line 214, in start_container_component\n    module = importlib.import_module(module_name)\n  File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module\n    __import__(name)\n  File "....Django-VirtualEnv/wamp-th/wamp-th/th_evernote/evernote.py", line 9, in <module>\n    from evernote.api.client import EvernoteClient\nImportError: No module named api.client\n'), kwargs = {})

Et effectivement en testant depuis Django-VirtualEnv/wamp-th/wamp-th/th_evernote ca fait pareil

Mais pour autant

pip freeze --local |grep evernote
evernote==1.25.0

du coup je ne sais plus quoi faire.

J'ai tenté de modifier dans "components" le parm :

"pythonpath": ["..", "../../"]

mais ca passe pas :(

précisions j'ai fait un virtualenv avec toutes mes affaires dedans

demandé 25-Fev-2015 par foxmask (2,862 points)

1 Réponse

+4 votes
 
Meilleure réponse

Bon ... je suis un ane baté ; c'est l'heure surement...

mon package se nomme evernote.py et dans ce dernier je fais :

from evernote.api.client import EvernoteClient
from evernote.edam.notestore import NoteStore
import evernote.edam.type.ttypes as Types
from evernote.edam.error.ttypes import EDAMUserException

et bien evidement "mon" package ne contient pas tout ca

je me cache bouboubou la honte

répondu 25-Fev-2015 par foxmask (2,862 points)
sélectionné 28-Fev-2015 par foxmask

Accepte ta réponse du coup, non ? :)

c'est du vol de points :P ca merite que je retire la question plutot :)

...