我正在使用python3.7并尝试使名称空间包正常工作,但是存在一些模块import
问题。我不清楚如何解决此问题。我已按照此处给出的说明(第一种方法)进行操作:Packaging namespace packages
我的项目的组织方式如下:
scripts/
python_pkgs/
a/
__init__.py <-- Contents of this file are name='a'
a.py
b.py
utils/
__init__.py <-- Contents of this file are name='utils'
util.py
setup.py
setup.py
的内容是:
from setuptools import setup, find_namespace_packages
setup(
packages=find_namespace_packages(include=['python_pkgs.*'])
)
现在a.py是可执行脚本。我在其中执行以下操作:
#/path/to/python3 -B
from b import foo
from python_pkgs.utils import util
第一次导入可以正常进行,因为b.py与a.py位于同一文件夹中。但是,尝试import
util.py
时出现错误:
from pythong_pkgs.utils import util, misc
ModuleNotFoundError: No module named 'pythong_pkgs'
我在做什么错了?
答案 0 :(得分:1)
如果应将pythong_pkgs
打包,则此目录内应有__init__.py
。
第二件事是可执行脚本不应成为python软件包的一部分。它应该是单独的文件
#/path/to/python3 -B
from python_pkgs.a.b import foo
from python_pkgs.utils import util
或
#/path/to/python3 -B
from python_pkgs.a.a import main
if __name__ == "__main__":
main()
您还可以调用python模块python -m python_pkgs.a.a