【发布时间】:2023-03-07 22:39:01
【问题描述】:
我已经编写了我的 python 项目并成功地发布它来测试 pypi。但是,现在我无法弄清楚如何将其正确配置为控制台脚本。在命令行上运行my_project 后,我得到以下堆栈跟踪:
Traceback (most recent call last):
File "/home/thatcoolcoder/.local/bin/my_project", line 5, in <module>
from my_project.__main__ import main
ModuleNotFoundError: No module named 'my_project'
显然,它创建了一个要运行的脚本,但该脚本无法导入我的实际代码。
文件夹结构:
pyproject.toml
setup.cfg
my_project
├── __init__.py (empty)
├── __main__.py
setup.cfg的相关部分:
[metadata]
name = my-project
version = 1.0.5
...
[options]
package_dir =
= my_project
packages = find:
...
[options.packages.find]
where = my_project
[options.entry_points]
console_scripts =
my_project = my_project.__main__:main
pyproject.toml(可能不相关)
[build-system]
requires = [
"setuptools>=42",
"wheel"
]
__main__.py:
from my_project import foo
def main():
foo.bar()
if __name__ == '__main__':
main()
要构建和上传,我正在运行以下命令:(python is python 3.10)
python -m build
python -m twine upload --repository testpypi dist/*
然后安装运行:
pip install -i https://test.pypi.org/pypi/ --extra-index-url https://pypi.org/simple my-project --upgrade
my_project
我怎样才能使这个控制台脚本工作?
另外,当前设置console_scripts 的方法只允许它以my_project 运行;是否也可以通过python -m my_project 使其工作?或者,一旦我的主要问题得到解决,这可能会起作用。
【问题讨论】: