gpt4 book ai didi

python - 如何使用 setuptools 生成调用 `python -m mypackage` 的 console_scripts 入口点?

转载 作者:太空狗 更新时间:2023-10-29 16:55:47 26 4
gpt4 key购买 nike

我正在努力成为一名优秀的 Pythonista 并关注 PEP 338对于我计划部署的包。

我还尝试使用 setuptools entry_points{'console_scripts': ... } 选项在 python setuptools install 上生成我的可执行脚本。

如何使用 entry_points 生成调用 python -m mypackage(并传递 *args、**kwargs)的二进制文件?

以下是我做过的一些尝试,但都没有成功:

setuptools(
...

(1)

entry_points=
{'console_scripts': ['mypkg=mypkg.__main__'],},

(2)

entry_points=
{'console_scripts': ['mypkg=mypkg.main'],},

(3)

entry_points=
{'console_scripts': ['mypkg=python -m mypkg'],},

我一直在使用的主要资源:

最佳答案

How can I use entry_points to generate a binary that calls python -m mypackage (and passes *args, **kwargs) ?

我认为这是看待问题的错误方式。您不希望脚本调用 python -m mypackage,但希望脚本具有与 python -m mypackage

相同的入口点

考虑这个简单的例子:

script_proj/
├── script_proj
│   ├── __init__.py
│   └── __main__.py
└── setup.py

和简约的 setup.py:

from setuptools import setup

setup(
name="script_proj",
packages=["script_proj"],
entry_points = {
"console_scripts": [
"myscript = script_proj.__main__:main",
]
}
)

__main__.py 是一个虚拟模块,包含 main 方法。

def main():
print("Hello world!")

if __name__ == "__main__":
main()

安装后,您将获得可执行文件myscript,它会调用__main__.py 中的main 方法。在这个包设计中 python -m script_proj 也调用相同的 main 方法。

关于python - 如何使用 setuptools 生成调用 `python -m mypackage` 的 console_scripts 入口点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27784271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com