如何在终端直接调用已安装的whl格式Python项目的指定脚本
报错原因
你之前执行python myProject.main失败,是因为Python默认会把传入的参数识别为本地文件路径,但myProject.main是安装到Python环境site-packages目录下的模块名,不是当前目录下的实体文件,因此找不到对应资源报错。
方案1:无需修改打包配置,临时可用
直接使用Python的-m参数指定将模块作为脚本运行,命令如下:
python -m myProject.main
注意要保证你的myProject/main.py文件里包含入口判断逻辑,示例如下:
# myProject/main.py 内容示例 def run(): # 你的原有业务逻辑 print("项目运行成功") if __name__ == "__main__": run()
方案2:修改打包配置,安装后直接用自定义命令调用(推荐)
在打包配置中注册命令行入口,重新打包安装后,直接输入自定义命令即可运行,无需带Python前缀。
根据你使用的打包配置文件类型选择对应配置:
如果你用setup.py配置打包
在setup()函数中增加entry_points配置:
from setuptools import setup setup( name="myProject", version="1.0.0", packages=["myProject"], # 其他原有配置保持不变 entry_points = { 'console_scripts': [ # 等号左边是你自定义的终端命令,右边是「模块路径:入口函数名」 'myproject-cmd = myProject.main:run' ] } )
如果你用官方推荐的pyproject.toml配置打包
增加如下配置:
[project.scripts] myproject-cmd = "myProject.main:run"
配置完成后重新执行打包命令生成新的whl包,在服务器上重新安装后,直接在终端输入myproject-cmd即可直接运行项目。
内容的提问来源于stack exchange,提问作者lida
相关产品推荐
相关产品推荐

