2016-09-12 61 views
0

我只是寫在Python中的一個小程序,它是:Python代碼不工作從Windows拷貝後到Linux

#!/usr/bin/env python 
print "hello" 

它工作在Windows中。當我在linux中鍵入這個代碼時,它也可以工作。

但是當我複製從Windows的Python文件在我的VBox到Linux上,此代碼不能正常工作,並顯示一條錯誤是:
:沒有這樣的文件或目錄
爲什麼會發生呢?我應該怎麼做才能解決它?

+0

也許shebang是錯的? –

+0

但是當我在linux環境下輸入相同的代碼時,它可以工作。當我將我的文件從Windows複製到Linux時,它不起作用 – Tom

+0

您沒有真正提供足夠的關於您的環境的信息,因此無法回答。一種猜測是,無論您在Windows中執行的環境是否試圖解釋您在文件中存在的shebang: https://en.wikipedia.org/wiki/Shebang_(Unix) –

回答

0

也許你得到一個錯誤,因爲在Windows和Linux上不同的行結束? Windows使用「\ r \ n」,Linux使用「\ n」。

可以編寫腳本,將獲得在Linux上擺脫「\ r」,例如:

編輯:我已經意識到,回車僅見於二進制模式。所以腳本應該這樣做

with open('myscript.py', 'rb') as file: 
    data = file.read() 
    data = data.replace(b'\r\n', b'\n') 
with open('myscript.py', 'wb') as file: 
    file.write(data) 
+0

您是對的!當我將行結束符更改爲unix時,該文件在linux中運行良好 – Tom