如何通过setup.py配置Python入口,实现Windows直接调用无需额外步骤
如何让Microsoft Store版Python安装的命令行工具直接在CMD中调用?
我正在用Python开发一款命令行工具,希望Windows 10/11用户能尽可能简便地安装和使用,目标流程如下:
- 从Microsoft Store安装Python
- 使用
pip install "C:\path\to\myprogram.zip"安装我的程序 - 在Windows CMD中输入
myprogram即可启动程序
当前我的setup.py代码如下:
from setuptools import setup setup( name="myprogram", # 其他参数省略 entry_points={"console_scripts": ["myprogram=myprogram.module:function"]}, )
该配置在虚拟环境中运行正常,但我不希望用户必须使用虚拟环境。我了解到执行上述pip install命令后,入口点脚本会被安装到C:\Users\myuser\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts,而该路径并不在Windows的%PATH%环境变量中,导致用户无法直接通过输入myprogram启动工具。
因此我想询问:是否可以通过以下两种方式之一解决问题,且无需额外安装步骤,直接在setup.py中实现?
- 将脚本写入Windows%PATH%已包含的某个目录(例如
C:\Users\myuser\AppData\Local\Microsoft\WindowsApps); - 将
C:\Users\myuser\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\LocalCache\local-packages\Python311\Scripts添加至Windows的%PATH%环境变量中?
我清楚这类方案大概率会存在一定的“取巧”性。
临时解决方案:目前我正在使用PyInstaller构建可执行文件来绕开该问题。
内容的提问来源于stack exchange,提问作者d4tm4x
相关产品推荐
相关产品推荐

