我一直在尝试正确打包我的 python 代码,将其上传到 git 上,然后安装在虚拟环境中,所有这些我都做了并且似乎工作得很好。问题是,一旦我在虚拟环境上安装我的代码,当我运行我的包时:
python3 -m mypackage
它会引发一个错误,表明我没有导入任何模块__main__.py
(我的包有一个包含所有内容的目录:__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 = [email protected] /cdn-cgi/l/email-protection
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
我有一个类似的问题,它困扰了我几天。最后我明白问题出在文件夹结构上。如果您使用find:
函数于setup.cfg
然后它会在下面寻找包/src
但如果你只有模块(就像我一样),它不会找到任何东西。
您应该将模块放入一个带有__init__
像这样的文件:
src
|
|-----package:
|
|------ __init__.py
|------ module1.py
|------ module2.py
|------ ...
请注意,当您尝试时import module1
例如,您需要导入:
from package import module1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)