我使用setup.py
創建包foo
,然後在本地用pip install .
在新的虛擬環境(python 2.7)中安裝它。在虛擬環境的python解釋器中,我能夠導入foo
,但python似乎認爲foo
比python包(包含__init__.py
文件的包類)更像是一個模塊,因爲當我嘗試調用foo
的子結構foo.bar
時,它給了我一個關於沒有bar
屬性的模塊的錯誤。Python認爲我的setup.py創建的包是一個不是python包的模塊
例如,我可以導入foo
沒有問題,但如果我嘗試並調用任何關foo
,它失敗,錯誤消息:
>>> import foo
>>> foo.bar
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'bar'
這裏的文件夾結構:
foo/
foo/
__init__.py
bar.py
setup.py
這裏是我的setup.py
file:
from setuptools import setup
setup(
url='none',
author='loren',
name='foo',
version='1.0.0',
packages=['foo'],
)
Inte休息一下,我可以用from foo import bar
進口吧,不僅如此,它還修復了我上面的錯誤,並進一步調用foo.bar
返回bar
模塊,但這對我沒有多大用處。
什麼我需要做的就是
>>> import foo
>>> foo.bar
正常工作?
'__init __。py'文件的內容是什麼? – jwodder
'__init __。py'文件爲空 – user2859458