Python яйца и модуль в качестве плагина - PullRequest
1 голос
/ 26 октября 2011

У меня есть эти яйца:

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

print "a"

a / b /__ init__.py is:

print "a.b"

Итак, «ab» - это «плагин» для «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 голосов
/ 27 октября 2011

проверьте ваш сгенерированный файл 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 
...