在 virtualenv 上找不到包 - 没有名为 "mypack" 的模块
Package not found on virtualenv - No module named "mypack"
嗨!
我尝试在我的主程序(名为 collector
)上使用我创建的包(名为 mypackage
)。 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
文件夹与我的主程序位于同一文件夹中。
如何在我的 collector
主程序中使用 mylittleprogram
mypackage
上的 virtualenv
?我是不是做错了什么?
谢谢:)
有问题,我必须通过以下命令安装我的包:
python setup.py develop
然后包就被识别出来了。该命令必须在virtualenv启动时执行,并在包的目录下执行。
希望这对以后的人有所帮助!
嗨!
我尝试在我的主程序(名为 collector
)上使用我创建的包(名为 mypackage
)。 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
文件夹与我的主程序位于同一文件夹中。
如何在我的 collector
主程序中使用 mylittleprogram
mypackage
上的 virtualenv
?我是不是做错了什么?
谢谢:)
有问题,我必须通过以下命令安装我的包:
python setup.py develop
然后包就被识别出来了。该命令必须在virtualenv启动时执行,并在包的目录下执行。
希望这对以后的人有所帮助!