setup.py импорт не работает правильно
Я пытаюсь установить простую библиотеку python, которую я создал, и думаю, что я могу пропустить шаг. Настройка идет нормально (или, по крайней мере, выполняется), но когда я импортирую, она не работает так, как я ожидаю. Структура каталогов выглядит следующим образом
Foo/
setup.py
README.txt
LICENSE.txt
foo/
__init__.py
bar.py
Я могу сделать
>>> import foo
Но тогда, если я попытаюсь
>>> foo.bar
Я получаю следующую ошибку
AttributeError: 'module' object has no attribute 'bar'
Напротив, никаких ошибок не происходит, если я использую
>>> from foo import bar
Вот мой setup.py
from distutils.core import setup
setup(
name='Foo',
version='0.1.0',
author='ctrl-c',
author_email='10minutemail@10minutemail.com',
packages=['foo'],
license='LICENSE.txt',
description='Foo does bar.',
long_description=open('README.txt').read(),
)
Я думаю, что просто что-то пропустил, но я искал через документы и еще не нашел его. Спасибо.
3 ответа:
Ваш setup.py кажется, все в порядке. Как вы устанавливаете свой пакет? Например:
% cd Foo % python setup.py install --root /tmp/fooroot % PYTHONPATH=/tmp/fooroot python -c 'from foo import bar; print bar' <module 'foo.bar' from 'foo/bar.py'>
Если вы используете систему, основанную на RPM, вы можете создать устанавливаемый RPM, используя следующее:
% python setup.py bdist_rpm % sudo rpm -i dist/Foo-0.1.0-1.noarch.rpm # now should be available to python globally
Если вы хотите, чтобы символ
bar
был виден как атрибут наfoo
по умолчанию, сделайте это:В
foo/__init__.py
:import bar