python - 从 Windows 命令行运行 Python 脚本,未传递参数

标签 python windows command-line command-line-arguments

我有一堆用 Python 编写的脚本。我从 Windows 命令提示符运行它们,例如

c:> my_script.py arg1 arg2 arg3

这在多年前就适用于每台计算机和每个 Windows 版本。刚才它在我的 Windows 7 系统上坏了。脚本被加载并执行。但是没有任何参数被传递到脚本中。

为了说明这一点,我有一个名为 py_echo.py 的脚本:

from pprint import pprint as pp
import sys

if __name__ =='__main__':
    pp(sys.argv)

然后我用参数 a, b, c 来执行它。一个都没有通过。

c:\Python27\Lib\site-packages>py_echo.py a b c
['C:\\0\\usr\\bin\\py_echo.py']

如果我显式运行 python.exe,参数会正确传递

c:\Python27\Lib\site-packages>python.exe c:\0\usr\bin\py_echo.py a b c
['c:\\0\\usr\\bin\\py_echo.py', 'a', 'b', 'c']

它之前是有效的。在我从我的电脑上卸载了一堆旧版本的 Python 解释器和模块后,它才开始崩溃。重新安装 Python 没有帮助。我想知道我能做些什么来解决这个问题??

多年来,我已经变得非常依赖自己编写的脚本。当它们坏掉的时候我觉得很不方便 :(

最佳答案

我在使用 Windows 7/Python 时遇到了同样的问题,最终发现我必须设置正确的文件关联并通过 regedit 更新两个注册表项。

这一切都在这篇优秀的文章中进行了描述:

http://eli.thegreenplace.net/2010/12/14/problem-passing-arguments-to-python-scripts-on-windows/

关于python - 从 Windows 命令行运行 Python 脚本,未传递参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7860872/

相关文章:

php - PHP 中的共享内存文件

windows - 一些实现命名管道通信的来源 btw 服务应用程序或帮助

java - 在代码 : Implementation of "database" where a query and result is obtained from proprietary CLI commands 中表示命令行界面命令

java - Windows空间中* .exe路径和参数中的java ProcessBuilder

命令提示符关闭时 Android 模拟器也会关闭

python - 如何在 SQLALchemy 中指定 Varchar 数据类型列的检查约束?

python - 在 python 上使用 ffmpeg 将 mkv 转换为 mp3 时出现“不支持的输入采样率设置”错误

python - 将 pandas 数据框转换为 xarray 数据集

windows - Azure 站点恢复无法安装在独立 Windows Server 2016 Core 上 - C++ 模块无法加载

Python 在除法时保持精度