python 命名空间包问题:模块未找到错误

3pmvbmvn  于 2023-03-11  发布在  Python
关注(0)|答案(1)|浏览(168)

我正在使用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位于同一个文件夹中。但是,尝试importutil.py时出现错误:

from pythong_pkgs.utils import util, misc
    ModuleNotFoundError: No module named 'pythong_pkgs'

我哪里做错了?

pxq42qpu

pxq42qpu1#

如果pythong_pkgs应该是find_packages可识别的软件包,则此目录中应该有__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

相关问题