Python egg和module作为插件

时间:2011-10-26 17:33:47

标签: python plugins egg

我有这些鸡蛋:

~/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
>>> 

一定是怎么回事?

1 个答案:

答案 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