Linux

使用 ./myscript.py 在 ubuntu 機器上執行 python 腳本

  • April 29, 2018

我在 ubuntu 機器上執行一個名為 myscript.py 的 python 腳本。我通常使用 python 命令來執行 python 腳本,如下所示。

python main.py

最近,我從 Github 儲存庫下載了一個 python 腳本(如果需要查看儲存庫,可以在https://github.com/gsrivas4/mnist-gan找到它),它要求使用 ‘./’ 執行腳本,如下所示。

./main.py

第二種方式執行 python 腳本對我來說是新的。我很困惑我們什麼時候可以使用’./‘來執行腳本,這種方法是否也可以執行用於其他語言的腳本。通常,我希望在添加腳本名稱之前啟動一個程序的二進制名稱,例如 python。這個腳本將被提供給程序。另外,我想了解執行腳本時“./”的含義。我覺得這是一個微不足道的問題,但在網上找不到太多幫助。

我還嘗試使我的一個 python 文件可執行,然後執行它。但是,使用 ./ 執行它會給我任何 python 庫導入命令的錯誤。

./只是一個指示目前工作目錄的相對路徑。執行不在您文件中的文件時,PATH必須為其添加完整路徑或相對路徑前綴,這./是最簡單的方法,但如果您使用完整路徑,也可以使用/path/to/script.py

執行 python 腳本時出錯的原因如下:

./script.py

而不是:

python script.py

是因為您在頂部沒有 hashbang(shebang) 解釋器行告訴它在執行腳本時使用哪個解釋器。它可能會嘗試使用 bash 或您用來執行腳本的任何 shell 來執行它。(請參閱哪個 shell 解釋器執行沒有 shebang 的腳本?


要使用 python 正確執行腳本,請將以下內容添加到腳本的第一行:

#!/usr/bin/env python

引用自:https://unix.stackexchange.com/questions/440642