【发布时间】:2012-04-03 12:59:46
【问题描述】:
我正在尝试从 Windows 7 的命令行运行 Python 脚本,但解释器似乎忽略了所有命令行参数。当我运行命令时它不会这样做
python C:\PathToScript\script.py arg1
或者当我以管理员权限启动终端时。在我不得不重新安装 Python (2.7.2) 之前,它曾经正常工作,所以我可能已经设法为标准用户打破了一些文件关联。 Python Command Line Arguments (Windows) 中的解决方案对我不起作用,因为注册表项已经用 %* 设置:
Key Name: HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
Class Name: <NO CLASS>
Last Write Time: 3/04/2012 - 14:19
Value 0
Name: <NO NAME>
Type: REG_SZ
Data: "C:\Python27\python.exe" "%1" %*
这不是一个大问题,但我已经习惯了在目录中按住 shift+单击并打开终端,而现在我必须运行提升的 cmd 提示符,输入管理员帐户名和密码并导航到正确的文件夹,以便正确运行脚本。有谁知道我在哪里可以找到这个用户特定的文件关联,或者是否有其他方法可以解决这个问题?
【问题讨论】:
-
您可以发布
HKCR\Applications\python.exe的注册表转储吗?另外,这是系统范围的安装还是用户本地的?也许一个用户特定的注册表项正在影响系统范围的配置。 -
当然,这是注册表转储:pastebin.com/f64UHjE7。这是一个系统范围的安装(两个安装都是系统范围的)。
-
您安装的是 64 位吗?注册表在这些系统上是重复的,一个用于 64 位进程,一个用于 WOW64(32 位)。 Explorer 是 64 位的,可能您编辑了错误的条目。您是如何开始注册的?
-
我使用 Start->Run->"regedit" 启动 regedit,它应该同时显示 32 位和 64 位密钥。当我使用 Start->Run->"%systemroot%\syswow64\regedit" 启动 32 位注册表编辑器时,该值似乎仍然正确:pastebin.com/Ak2fbpUa。我不知道它是否有帮助,但这里是 Python 的 64 位注册表编辑器中 32 位节点的注册表转储:pastebin.com/Es2Eyxnw。
-
你有没有解决这个问题.. 我也有同样的问题。
标签: python windows command-line-interface