在 setup.cfg 中查找问题 |路径中看不到模块

Issue with find in setup.cfg | modules are not seen in path

我一直在尝试正确打包我的 python 代码,将其上传到 git,然后安装到虚拟环境中,所有这些我都做过并且看起来工作得很好。问题是一旦我在虚拟环境中 pip 安装我的代码,当我 运行 我的包为:

python3 -m mypackage

它引发了一个错误,提示我在 _main_.py 中导入了 none 个模块(我的包只有一个目录,其中包含所有内容: _init_.py , _main_.py , module1.py 等)被看到。但是,一旦我“cd”到虚拟环境中安装包的位置,它就可以看到所有模块并且一切正常。我的猜测是我的 setup.cfg 文件有问题,我猜想“查找”命令没有执行它们应该执行的操作(请让我知道是否可以更有效地编写其他内容;我是初学者):

[metadata]
# replace with your username:
name = my_package
version = 0.0.1
author = my_name
author_email = name@email.com
description = 
long_description = file: README.md
long_description_content_type = text/markdown
url = https://github.com/myname/mypackage
project_urls =
    Bug Tracker = https://github.com/myname/mypackage/issues
classifiers =
    Programming Language :: Python :: 3
    License :: OSI Approved :: MIT License
    Operating System :: OS Independent

[options]
package_dir =
    = src
packages = find:
python_requires = >=3.6
install_requires =
    numpy > 1.0 
    opencv-python >= 4.0

[options.packages.find]
where = src

我遇到了类似的问题,困扰了我几天。最后我明白问题出在文件夹结构上。如果您在 setup.cfg 中使用 find: 函数,那么它将在 /src 下查找包,但如果您只有模块(就像我一样),它将找不到任何东西。

你应该把你的模块放在一个有 init 文件的文件夹里,像这样:

src
 |
 |-----package:
          |
          |------ __init__.py
          |------ module1.py
          |------ module2.py
          |------ ...

请注意,当您尝试导入 module1 时,您需要导入:

    from package import module1