我最近发现一个安装的软件包
$ pip install -e .
在一个子包中没有__init__.py
文件,但是我仍然可以无问题地进行导入。当我使用相同的方式进行安装时,情况也一样。
$ pip install .
我无法导入子包。为什么?
(如果有影响的话:我使用Python 3.6)
我最近发现一个安装的软件包
$ pip install -e .
在一个子包中没有__init__.py
文件,但是我仍然可以无问题地进行导入。当我使用相同的方式进行安装时,情况也一样。
$ pip install .
我无法导入子包。为什么?
(如果有影响的话:我使用Python 3.6)
没有 __init__.py
的文件夹可能被视为一个隐式命名空间包的一部分。除非你知道什么是命名空间包并且明确需要一个,否则你仍应该在你的包中包含__init__.py
,但这就是所发生的事情。
使用pip install -e .
,pip
安装一个东西,告诉Python直接在您的原始源文件夹中查找包内容。当Python查看您的源文件夹时,它会找到没有__init__.py
的文件夹。
使用pip install .
,pip
只安装setup.py
指定要安装的内容,而您的setup.py
不会指示安装没有__init__.py
的文件夹。Python查找已安装版本的软件包,而不是您的原始源文件夹,并且不会找到没有__init__.py
的文件夹。