Python
從 Linux 終端執行 python 腳本
我已經下載了這個名為 pyAES.py 的腳本,並將其放在我的 Linux 桌面目錄中的文件夾名稱程式碼中,
根據這個例子, http://brandon.sternefamily.net/2007/06/aes-tutorial-python-implementation/
當我打字時,
./pyAES.py -e testfile.txt -o testfile_encrypted.txt
應該執行文件 pyAES.py。但我收到了這個錯誤,
pi@raspberrypi ~/Desktop/Codes $ pyAES.py -bash: pyAES.py: command not found
命令的輸出
ls -l
是,pi@raspberrypi ~/Desktop/Codes $ ls -l total 16 -rw-r--r-- 1 pi pi 14536 Oct 8 10:44 pyAES.py
這是之後的輸出
chmod +x
pi@raspberrypi ~/Desktop/Codes $ chmod +x pyAES.py pi@raspberrypi ~/Desktop/Codes $ pi@raspberrypi ~/Desktop/Codes $ pyAES.py -bash: pyAES.py: command not found pi@raspberrypi ~/Desktop/Codes $
和命令,
chmod +x pyAES.py && ./pyAES.py
給出以下錯誤,-bash: ./pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory
我也試過移動
/usr/bin
目錄中的文件然後執行它,pi@raspberrypi /usr/bin $ pyAES.py -bash: /usr/bin/pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory pi@raspberrypi /usr/bin $
我可以看到該文件存在於 /usr/bin 目錄中,但它仍然給出沒有這樣的文件或目錄的錯誤。
我想知道為什麼 Linux 終端不執行 python 腳本?
看來您的 shebang 線寫得不好。從您得到的錯誤中:
-bash: /usr/bin/pyAES.py: /usr/bin/python2: bad interpreter: No such file or directory
我會說你應該將第一行設置
/usr/bin/pyAES.py
為#!/correct/path/to/python
/correct/path/to/python
可以從以下輸出中找到:type -P python
它
/usr/bin/python
(不是/usr/bin/python2
)在我的系統上。
您收到的錯誤
"command not found"
是因為該執行檔不存在於變數中/bin/
或/usr/bin/
所有路徑中。$PATH
當您執行任何命令時,在後端 shell 中搜尋 PATH 中的執行檔/二進製文件,例如。
/bin/
/usr/bin/
ETC…因此,如果路徑沒有正確定義,那麼您將面臨這個問題。
並且當您使用“
./command
”時,它將從目前目錄執行該命令,PATH變數不用於搜尋文件名