在 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
我一直在尝试正确打包我的 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