在virtualenv上找不到包 - 没有名为" mypack"

时间:2017-06-22 17:51:41

标签: python virtualenv setuptools

嗨!

我已尝试在我的主程序(名为mypackage)上使用我已创建的程序包(名为collector)。 mypackage定义为以下setup.py

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

我想使用这个程序包中的一个小程序,通常在collector上调用如下:

from mypack.common.prog import mylittleprogram

我试图在virtualenv上安装mypackage,然后(重新)安装我的主程序。然后我执行了它,并且有错误:

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'

此外,当virtualenv被激活时,我只是尝试启动名为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'

注1:我确切地知道我的包裹的每个文件夹都有__init__.py

注意2:virtualenv文件夹与我的主程序位于同一文件夹中。

如何使用mylittleprogrammypackage主程序collector上的virtualenv使用networkError(FoodAPI.NetworkError.responseStatusError(status: 400, message: "<NSHTTPURLResponse: 0x1c4239700> { URL: https://stackoverflow.com/ } { status code: 400, headers {\n Date = \"Thu, 22 Jun 2017 17:41:03 GMT\";\n} }")) ?我做错了什么?

谢谢:)

1 个答案:

答案 0 :(得分:0)

有问题,我必须通过以下命令安装我的软件包:

python setup.py develop

然后识别包裹。该命令必须在virtualenv被激活时执行,并在包的目录上执行。

希望这将有助于将来的某个人!