2017-06-22 5 views
0

Hallo!Paket nicht gefunden auf virtualenv - Kein Modul namens "mypack"

Ich habe versucht, ein Paket, das ich erstellt habe (mit dem Namen mypackage) auf meinem Hauptprogramm (mit dem Namen collector) zu verwenden. mypackage mit dem setup.py unten definiert:

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

ich ein kleines Programm präsentieren dieses Paket verwenden möchten, die in der Regel, wie unten auf collector aufgerufen werden:

from mypack.common.prog import mylittleprogram 

Ich habe versucht mypackage zu installieren auf einem virtualenv, und dann mein Hauptprogramm (neu) installiert. Dann ausgeführt ich es, und es ist der Fehler habe ich:

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' 

Auch wenn die virtualenv aktiviert ist, habe versucht, ich nur den Einstiegspunkt zu starten my-package genannt:

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' 

Hinweis 1: Ich präzisiere, dass ich die __init__.py auf jedem Ordner meines Pakets habe.

Hinweis 2: Die Ordner virtualenv befinden sich im selben Ordner wie mein Hauptprogramm.

Wie verwende ich mylittleprogram auf mypackage auf meinem collector Hauptprogramm mit virtualenv? Habe ich etwas falsch gemacht?

Danke :)

Antwort

0

Es ist die Frage, hatte ich mein Paket über den folgenden Befehl zu installieren:

python setup.py develop 

Und dann wird das Paket erkannt. Dieser Befehl muss ausgeführt werden, wenn der virtualenv aktiviert ist, und auf dem Verzeichnis des Pakets ausgeführt werden.

Hoffe, dass dies jemand in der Zukunft helfen wird!

Verwandte Themen