我只是寫在Python中的一個小程序,它是:Python代碼不工作從Windows拷貝後到Linux
#!/usr/bin/env python
print "hello"
它工作在Windows中。當我在linux中鍵入這個代碼時,它也可以工作。
但是當我複製從Windows的Python文件在我的VBox到Linux上,此代碼不能正常工作,並顯示一條錯誤是:
:沒有這樣的文件或目錄
爲什麼會發生呢?我應該怎麼做才能解決它?
我只是寫在Python中的一個小程序,它是:Python代碼不工作從Windows拷貝後到Linux
#!/usr/bin/env python
print "hello"
它工作在Windows中。當我在linux中鍵入這個代碼時,它也可以工作。
但是當我複製從Windows的Python文件在我的VBox到Linux上,此代碼不能正常工作,並顯示一條錯誤是:
:沒有這樣的文件或目錄
爲什麼會發生呢?我應該怎麼做才能解決它?
也許你得到一個錯誤,因爲在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)
您是對的!當我將行結束符更改爲unix時,該文件在linux中運行良好 – Tom
也許shebang是錯的? –
但是當我在linux環境下輸入相同的代碼時,它可以工作。當我將我的文件從Windows複製到Linux時,它不起作用 – Tom
您沒有真正提供足夠的關於您的環境的信息,因此無法回答。一種猜測是,無論您在Windows中執行的環境是否試圖解釋您在文件中存在的shebang: https://en.wikipedia.org/wiki/Shebang_(Unix) –