1. 程式人生 > >ubuntu下讓python指令碼可直接執行

ubuntu下讓python指令碼可直接執行

我們還是以那個翻譯程式為例子,上次給各位老鐵講了在windows下的應用程式打包,這一次給各位老鐵講一講,在linux下為python檔案可以自己執行,從而不需要python xxx.py。

很簡單,在python原始檔最上面添上下面一句話!

#!/usr/bin/python3

這裡寫圖片描述
/usr/bin/python3,是ubuntu下python3直譯器所在的目錄,具體可以用which python3檢視
這裡寫圖片描述

然後在執行chmod +x ./xxx.py,為python指令碼增加可執行許可權
例如我這裡

sudo chmod +x ./translate.py

最後執行./translate.py
然後…………報錯了

-bash: ./translate.py: /usr/bin/python3^M: 直譯器錯誤: 沒有那個檔案或目錄

為什麼?
這個是我在win7下寫好的原始碼,後來用winscp傳到ubuntu上的,所以就造成了一個問題,dos下寫的程式碼,拿到linux下,存在不相容。
這裡寫圖片描述
解決辦法:

sudo vim translate.py
:set ff=unix

這裡寫圖片描述

然後在執行 ./translate.py
這裡寫圖片描述

OK,完美執行,但是細細一看,似乎還不完美,因為每次都要切換到檔案所在目錄才能執行,為了更方使用程式,我們可以將translate.py連線到/usr/bin,或者/usr/local/bin,等等配置了系統環境變數的目錄下

sudo ln -s /xxxx/xxxx/xxxx/translate.py /usr/local/bin/dict

/xxxx/xxxx/xxxx/ ,是translate.py所在的絕對路徑
/usr/local/bin/dict,dict是translate.py軟連線後的重新命名

執行效果
這裡寫圖片描述
OK,以後在我的ubuntu系統裡,不就有一個現成的翻譯程式了嗎?豈不是美滋滋!
這裡寫圖片描述