Windows7开发Python pip包上传PyPI后调用时脚本被编辑器打开的解决求助
解决Windows 7下pip包脚本被文本编辑器打开的问题
我明白你在Windows 7上遇到的这个糟心问题——刚把Python包传到PyPI,本地安装后调用脚本居然直接用文本编辑器打开,完全没运行代码。别担心,Windows环境下不需要Linux那套chmod +x,咱们用这几个方法就能搞定:
方法一:用pip的entry_points定义跨平台可执行脚本(推荐)
这是最规范的跨平台解决方案,pip会自动在Windows上生成对应的.exe可执行文件,根本不会出现关联错误。
在你的包的setup.py(或者pyproject.toml,如果你用现代打包工具)里添加entry_points配置:
用setup.py的例子:
from setuptools import setup setup( name="your-package-name", version="0.1.0", # 其他包信息... entry_points={ "console_scripts": [ "your-command = your_package.main:run", ], }, )
your-command是你想在命令行直接输入的指令(比如hello-world)your_package.main是你包中包含主逻辑的模块路径run是该模块中要执行的主函数名
重新打包上传PyPI,本地安装后,直接在命令行敲your-command就能运行脚本了,Windows会自动识别这个生成的.exe文件并执行。
方法二:修复Windows的Python文件关联
如果你的.py文件默认被关联到了文本编辑器,修改系统关联就能解决:
- 以管理员身份打开命令提示符(CMD)
- 执行以下命令(把路径换成你实际的Python安装路径):
assoc .py=Python.File ftype Python.File="C:\Python39\python.exe" "%1" %*
比如你的Python安装在C:\Python37,就把路径改成C:\Python37\python.exe。执行完后,再直接调用脚本名,Windows就会用Python来执行它了。
方法三:显式用Python命令调用脚本
如果暂时不想修改包的配置,每次调用时可以直接指定用Python执行:
- 调用包内的模块:
python -m your_package.module_name
- 直接指定脚本文件路径:
python "C:\Users\YourName\AppData\Local\Programs\Python\PythonXX\Lib\site-packages\your_package\script.py"
这样能强制绕过文件关联,直接让Python运行你的代码。
内容的提问来源于stack exchange,提问作者Codeformer
相关产品推荐
相关产品推荐

