我使用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