2012-12-19 84 views
0

我正要從CMD窗口默認的shell測試ftpmirror內置腳本(python322,WINXP 32位),並得到這個:蟒蛇命令行確定在Python Shell而不是通過窗戶在cmd

File "C:\Program Files\python322\Tools\Scripts\ftpmirror.py", line 161 
print('Skip pattern', repr(pat), end=' ') 
            ^
SyntaxError: invalid syntax 

我測試print()直接在python shell,trough cmd和idle(以及blender)中直接行:這個工作很可惡。

我重現錯誤與coucou.py文件是這樣的:

#! /usr/bin/env python3 
pat = 'toto' 
print("Skip pattern", repr(pat), end=" ") 

當從命令提示符直接調用:

C:\Program Files\python322\Tools\Scripts>coucou.py 

同樣的錯誤比ftpmirror 但:

C:\Program Files\python322\Tools\Scripts>python coucou.py 

還行

和我的環境是好的我可以直接從Windows用戶界面通過雙擊.py文件執行py腳本,並且在從.bat調用時工作腳本工作正常

我不明白,它看起來特定於print()結束參數,我還沒有讀過關於從Windows cmd shell執行python3的方式的內容?

感謝,

傑羅姆

+4

您的計算機上是否還安裝了Python 2.x? – jdotjdot

回答

3

嘗試檢查,如果你當你雙擊或運行在命令行python運行相同的Python解釋器。

保存在一個文件.py與此內容,並嘗試用兩種方法運行它:

import sys 
print sys.version_info 

我敢打賭,你在每一種情況下采用不同的解釋。

+0

omg ...非常感謝...對不起... PYTHONPATH = C:\ Progra〜1 \ python322 \; C:\ Progra〜1 \ python266 我的系統很糟糕:) – jerome

+0

'打開... '的py文件拒絕讓我選擇python322,因爲一個虛擬的情況下(266/python.exe和322/python.exe共享相同的名稱。)所以我直接編輯註冊表,並取代任何引用到HKEY_CLASSES_ROOT中的266路徑\ Python.File由322路徑。它現在看起來不錯。 如果您希望能夠在右鍵單擊py文件時使用'open with'選擇不同的python版本,可以複製每個python.exe並重命名爲python266.exe,python272.exe 322等,然後選擇他們配置'打開'(或者我打賭也可以閱讀python文檔?) – jerome