我有这些鸡蛋:
~/test/lib/
├── a-1.0-py2.7.egg
│ ├── a
│ │ ├── __init__.py
│ │ └── __init__.pyc
│ └── EGG-INFO
│ └── ...
├── a.b-1.0-py2.7.egg
│ ├── a
│ │ └── b
│ │ ├── __init__.py
│ │ └── __init__.pyc
│ └── EGG-INFO
│ └── ...
├── easy-install.pth
├── site.py
└── site.pyc
a / __ init__.py是:
print "a"
a / b / __ init__.py是:
print "a.b"
所以,“a.b”是“a”的“插件”。我会单独安装它(和大多数其他人一样)。 但在那种配置中我的想法不起作用:
>>> import a
a
>>> import a.b
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named b
>>>
一定是怎么回事?
答案 0 :(得分:0)
检查生成的egg文件,如果有模块a.b.
如果没有,请尝试使用find_packages注册您的模块。
from setuptools import setup, find_packages
setup(
name='pypack',
version='0.1',
packages=find_packages(),
...
├── a.b-1.0-py2.7.egg
│ ├── a
│ ├── __init__.py
│ └── __init__.pyc
│ │ └── b
│ │ ├── __init__.py
│ │ └── __init__.pyc
│ └── EGG-INFO
│ └── ...
每个文件夹都应该有
__init__.py