我一直在尝试正确地打包我的python代码,将其上传到git上,并安装在虚拟环境中,所有这些我都做了,而且似乎都很好。问题是,一旦我在虚拟环境中pip安装了我的代码,当我以的形式运行我的包时
python3 -m mypackage
它引发了一个错误,表明我在__main__.py
中导入的模块(我的包有一个包含所有内容的目录:__init__.py
、__main__.py
、module1.py
等(都看不到。然而,一旦我";cd";进入软件包在虚拟环境中的安装位置,它可以看到所有模块,一切正常。我的猜测是我的CCD_ 5文件有问题;查找";命令没有做他们应该做的
也请告诉我,如果其他的东西可以写得更优雅。
[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
|------ ...
请注意,例如,当您尝试import module1
时,您需要使用导入
from package import module1