![无法从任何文件夹执行python程序](https://linux22.com/image/179206/%E6%97%A0%E6%B3%95%E4%BB%8E%E4%BB%BB%E4%BD%95%E6%96%87%E4%BB%B6%E5%A4%B9%E6%89%A7%E8%A1%8Cpython%E7%A8%8B%E5%BA%8F.png)
~/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 仅包含/home/pol/bin
.将程序移动到/home/pol/bin
或添加/home/pol/bin/Python
到 $PATH。