2015-11-04 31 views
0

我知道我可以從標準輸入這樣運行了一個python腳本:如何從字符串將字節碼提供給python解釋器?

python - < script.py 

我還可以運行編譯Python文件:

python script.pyc 

但我不能運行從標準輸入編譯Python文件:

python - < script.pyc 
SyntaxError: Non-UTF-8 code starting with '\xee' in file <stdin> on line 1, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for details 

顯然我必須告訴解釋,這是字節碼。但是如何?

回答

0

字節碼不應該作爲標準輸入傳遞。它包含只由pyhon解釋器運行並在其外部執行的代碼,這只是亂碼。基本上,當你試圖通過文件作爲標準輸入時,它被視爲文本,因此你會得到錯誤。 .py文件是文本格式,因此它可以像文本一樣安全地解析並正確執行。

從您的代碼示例中,我會假設你正在嘗試運行從一個bash控制檯(在Linux中線上),所以正確的方式將文件確實是:

python script.pyc 

這是什麼,你也嘗試過。

+0

所以答案是:這是不可能的stdin? –

+0

我這麼認爲。當解釋爲文本時,Bycode沒有意義。 – DorinPopescu