~/bin
というPythonプログラムがありますprogram.py
。そのフォルダにある場合は問題なくターミナルでプログラムを実行できますが、別のフォルダにある場合は次の結果が表示されます。
python: can't open file 'program.py': [Errno 2] No such file or directory
~/bin
変数があるため、PATH
すべてのフォルダで問題なくbashスクリプトを実行できます。
何が問題なの?
データ:
このフォルダにはPythonプログラムがあります。
$ pwd
/home/pol/bin/Python
$ head -1 program.py
#! /usr/bin/python3
$ which python3
/usr/bin/python3
$ echo $PATH
/home/pol/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/var/lib/snapd/snap/bin
$ program.py
bash: program.py: command not found
答え1
シェボンはありますか?スクリプトの最初の行は実際のインタプリタを指す必要があります。
#!/usr/bin/python3
また、権限が正しく設定されていることを確認してください。たとえば、775のようなものが必要な場合があります。
これがうまくいくかどうかを証明する方法は次のとおりです。
$ pwd
/tmp/test
$ ls
test.py
$ head -3 test.py
#!/usr/bin/python3
# SPDX-License-Identifier: GPL-2.0 OR GPL-3.0
#
$ export PATH=/tmp/test:$PATH
$ test.py
usb1 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.1) hub
usb2 1d6b:0003 09 1IF [USB 3.10, 10000 Mbps, 0mA] (xhci-hcd 0000:04:00.1) hub
usb3 1d6b:0002 09 1IF [USB 2.00, 480 Mbps, 0mA] (xhci-hcd 0000:04:00.3) hub
...
skipped
それはすべて大丈夫です。
すべての情報を取得したら、実際の答え:プログラムがあり、/home/pol/bin/Python
$ PATHにのみプログラムを$ PATHに/home/pol/bin
移動/home/pol/bin
または追加します。/home/pol/bin/Python