如何让Python编写的CLI无需终端运行.py文件即可直接调用
Python CLI工具实现全局短命令调用的方法
以下是两种常用的实现方案,分别适合发布给用户使用和本地自用测试场景:
方案1:配置打包入口点(推荐,适合对外发布)
这是最规范的实现方式,用户通过pip安装你的工具后会自动生成全局可执行命令,无需额外配置。
你只需要在项目根目录的pyproject.toml中添加命令行入口配置即可,示例如下:
[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" [project] name = "mycli-demo" version = "0.1.0" description = "自定义CLI工具" requires-python = ">=3.8" # 核心配置:定义全局命令 [project.scripts] myCLI = "mycli_package.main:main"
上述配置的含义为:生成名为myCLI的全局命令,触发命令时自动执行项目中mycli_package包下main.py文件的main函数(也就是你编写argparse逻辑的入口函数)。
配置完成后,本地执行pip install .即可直接使用myCLI -option命令,你把包发布到PyPI后,其他用户安装后也可以直接使用对应命令。
如果你仍在使用旧版的setup.py配置,可添加如下配置实现同样效果:
from setuptools import setup setup( name="mycli-demo", version="0.1.0", entry_points={ 'console_scripts': [ 'myCLI = mycli_package.main:main', ], }, )
方案2:手动配置(适合本地自用测试)
如果只是自己本地临时使用,不想做打包配置,可通过以下两种方式快速实现:
- 方法A:修改文件属性+配置环境变量
- 在你的
myCLI.py文件顶部添加shebang声明:- Linux/macOS:
#!/usr/bin/env python3 - Windows:
#!python
- Linux/macOS:
- Linux/macOS执行
chmod +x 路径/to/myCLI.py给文件添加执行权限,Windows无需此步骤 - 把
myCLI.py所在的目录添加到系统PATH环境变量中,或者把文件移动到已经在PATH中的系统目录 - (可选)把文件重命名为
myCLI去掉后缀,之后就可以直接调用myCLI -option
- 在你的
- 方法B:设置命令别名
临时生效可直接在终端执行对应命令:- Linux/macOS(bash/zsh):
alias myCLI='python 绝对路径/to/myCLI.py' - Windows PowerShell:
Set-Alias myCLI "python 绝对路径\to\myCLI.py"
要永久生效的话,把上述别名配置写入对应shell的配置文件即可(比如Linux的~/.bashrc/~/.zshrc,Windows PowerShell的$PROFILE)
- Linux/macOS(bash/zsh):
内容的提问来源于stack exchange,提问作者Daniel Jungwirth
相关产品推荐
相关产品推荐

