2017-06-22 1 views
0

Hi!Package non trouvé sur virtualenv - Aucun module nommé "mypack"

J'ai essayé d'utiliser un package que j'ai créé (nommé mypackage) sur mon programme principal (nommé collector). mypackage est défini avec le setup.py ci-dessous:

name = "mypackage" 
[...] 
packages = find_packages(), 
include_package_data = True, 
exclude_package_data = { '': ['README.md'] } 
[...] 
entry_points = { 
    'console_scripts': [ 
     'my-package=mypack.mypack:main' 
    ] 
}, 

Je veux utiliser un petit programme présente ce paquet, qui sera normalement appelé ci-dessous sur collector:

from mypack.common.prog import mylittleprogram 

J'ai essayé d'installer mypackage sur un virtualenv, puis (ré) installé mon programme principal. Ensuite, je l'exécutaient, et il y a l'erreur que j'ai:

Traceback (most recent call last): 
from project.common.collector import collectArt 
File "/root/project/lib/python3.5/site-packages/collector-0.1-py3.5.egg/project/common/collector.py", line 7, in <module> 
ImportError: No module named 'mypack' 

En outre, lorsque le virtualenv est activé, je viens d'essayer de lancer l'entrée point nommé my-package:

Traceback (most recent call last): 
File "/root/project/bin/my-package", line 11, in <module> 
load_entry_point('mypackage==0.1.1', 'console_scripts', 'my-package')() 
File "/root/project/lib/python3.5/site-packages/pkg_resources/__init__.py", line 560, in load_entry_point 
return get_distribution(dist).load_entry_point(group, name) 
File "/root/project/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2648, in load_entry_point 
return ep.load() 
File "/root/project/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2302, in load 
return self.resolve() 
File "/root/project/lib/python3.5/site-packages/pkg_resources/__init__.py", line 2308, in resolve 
module = __import__(self.module_name, fromlist=['__name__'], level=0) 
ImportError: No module named 'mypack' 

Remarque 1: Je précise que j'ai le __init__.py sur chaque dossier de mon colis.

Remarque 2: les dossiers virtualenv se trouvent dans le même dossier que mon programme principal.

Comment utiliser mylittleprogram présent sur mypackage sur mon programme principal collector avec virtualenv? Ai-je fait quelque chose de mal?

Merci :)

Répondre

0

Il y a la question, je devais installer mon paquet via la commande suivante:

python setup.py develop 

Et le paquet est reconnu. Cette commande doit être exécutée lorsque virtualenv est activé et être exécutée dans le répertoire du paquet.

Espérons que cela aidera quelqu'un dans le futur!