2013-03-21 33 views
0

注意:這個問題沒有被標記爲原始的問題所回答。這不僅僅是一個Python v2 vs v3問題,我在下面的評論中解釋了這個問題。使用便攜式Python重複出現錯誤

原文章: 我想在工作中學習Python,所以我目前使用的是可移植的Python 3.2.1.1(它將從此稱爲PP)。 (我提到這一點,因爲當我使用我的Mac和普通的Python時,這個問題在家裏不會發生。)

我正在通過練習16學習Python的艱難之路(http://learnpythonthehardway.org/book/ex16.html)。我聽說這不是最好的學習工具,但我是一個完整的編程n00b,我是一個動手的學習者。如果您有更好的建議,我會開放!

演習的前幾行閱讀:

from sys import argv 
    script, filename = argv 
    print "We're going to erase %r." % filename 
    print "If you don't want that, hit CTRL-C (^C)." 

我的劇本的題目是Ex16.py,我使用的文件是Python.txt,並且兩者都是在同一個文件夾中PP .EXE文件。我不認爲這是必要的,但希望它可以解決這個問題......消極。當我在PP中按下「運行」時,它不起作用,因爲argv要求您在啓動腳本時提供參數:python Ex16.py Python.txt

當我啓動Python.exe(其中,PP便攜式Python.exe),我得到的標準Python提示符>>>,但無論我輸入我得到同樣的錯誤消息:

File "<stdin>", line 1 
    with whatever I've just tried repeated back to me with the marker to 
    indicate where the problem is. (has not been helpful so far) 

    SyntaxError: invalid syntax 

我試圖在>>>提示符下鍵入以下內容: python Ex16.py Python.txt ,, Ex16.py Python.txt ,, "%PATH&\Ex16.py" "%PATH%\Python.txt" (with the actual filepaths) ,, print 'hello world'

我只是不斷得到相同的無效語法錯誤。即使是基本的打印命令也會返回無效的語法錯誤。唯一引發不同錯誤的是我嘗試整個文件路徑的那個。那一個返回:

File "<stdin>", line 1 
    SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in 
    position 2-3: truncated \UXXXXXXXX escape 

是的,我已經谷歌谷歌失控兩個錯誤。我讀到有時候問題並不是加倍退後,所以我也嘗試過,在兩個文件路徑中放入兩個\以前只有一個。我甚至試圖在腳本的開頭放置— # -*- coding: utf-8 -*-,因爲可能存在一些unicode錯誤。在完整的文件路徑中,導致了前面提到的相同的unicode錯誤。

是的,我已經檢查過我的代碼與練習中的代碼是否匹配。
是的,這在非PP的家庭工作。

所有這一切讓我相信,這個問題可能是我試圖在PP中運行腳本的方式(但爲什麼不會print工作?),但我不知道我是什麼做錯了。

謝謝!

+0

如果您可以粘貼一個完整的終端會話,就像它看起來一樣,它可能會更容易幫助。 – 2013-03-21 15:22:34

+0

我喜歡複製和粘貼(它會容易得多),但它不會讓我選擇任何文本。即使右擊也不會產生任何選項。 :( – user2195503 2013-03-21 15:32:36

+0

_I已經嘗試在>>>提示符處輸入以下內容:python Ex16.py Python.txt_ - 一旦您處於python提示符(>>>),請輸入python語句,而不是shell命令。 sys','>>> sys.stdout.write(sys.version +','+ sys.executable +'\ n')'等等...這兩行是找出哪個python的好方法 – tdelaney 2013-03-21 16:17:55

回答

5

print是在Python 3的功能:

print('my string with content and the like') 

它不再支持將是一個 '說法'。您可能想要查看一個list of things that changed from python2.x to python3.x(存在一些不兼容問題)。另外,使用Python3查找教程可能會更好。

+0

這是一個很好的觀點,我必須詳細閱讀 – user2195503 2013-03-21 15:31:49

+0

所以,部分原因是它是一個2 vs 3的錯誤(我使用的是PP 3,但試圖用2寫),但它最終成爲python.exe和Windows解釋我的命令的方式,我將解釋一下:一旦安裝,Portable Python在主文件夾 - App文件夾中有三件事,PyScripter-Portable.exe ,和Python-Portable.exe。在App文件夾中,python.exe由@ Charl-Botha提到,它提供了Python shell。Python-Portable.exe和App \ Python.exe都提供了python shel湖 – user2195503 2013-03-29 17:06:40

+0

一旦我獲得了相同的PP版本,我進入了CMD提示符(而不是解釋器),並在Python.exe中輸入了完整的文件路徑(其路徑中有空格),一個空格,完整的腳本不帶引號的文件路徑(文件路徑DID沒有空格),一個空格以及引號中的目標文件(Python.txt)的完整文件路徑(同樣,路徑也有空格)。這成功地運行了我的腳本。那謝謝啦! :) – user2195503 2013-03-29 17:13:43

2

您必須鍵入:

Portable-Python.exe Ex16.py Python.txt 

在命令提示符。要獲得命令提示符,請按WindowsKey-R,然後鍵入「cmd」並按Enter鍵。你現在應該看看像c:\>。通過使用cd命令導航到您的便攜式python安裝。

+0

我試圖通過命令行導航到文件夾,然後使用你的建議,但它只是啓動portable-python.exe並給我提示>>>。 – user2195503 2013-03-21 15:30:48

+0

嗯,在這些文件中的某處你仍應該找到一個python.exe。它看起來像Portable-Python.exe忽略參數。太好了! :)如果該目錄中有一個python.exe,請使用python.exe而不是Portable-Python.exe嘗試我的調用。 – 2013-03-21 16:32:22