簡體   English   中英

從Windows命令行運行Python腳本,未傳遞參數

[英]Run Python scripts from Windows command line, argument not passed

我有一堆用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']

它以前工作過。 在我從PC上卸載了一堆舊版本的Python解釋器和模塊之后,它才開始崩潰。 重新安裝Python沒有幫助。 我想知道我該怎么做才能解決這個問題?

我已經變得非常依賴我多年來建立的腳本。 當他們休息時我覺得非常殘疾:(

我遇到了與Windows 7 / Python相同的問題,並且最終發現我必須設置正確的文件關聯並通過regedit更新兩個注冊表項。

這篇優秀的文章都描述了這一點:

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

將答案移到SO(而不是Jon的答案中的鏈接):

修改以下兩個注冊表,以便將參數傳遞給Python:

HKEY_CLASSES_ROOT\Applications\python.exe\shell\open\command
HKEY_CLASSES_ROOT\py_auto_file\shell\open\command

%*添加到現有的"C:\\PythonXX\\python.exe" "%1" ,以便密鑰現在看起來像: "C:\\PythonXX\\python.exe" "%1" %*

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM