无法在不指定完整路径的情况下运行 python 脚本

时间:2021-03-13 16:56:37

标签: python linux

嗨,我正在尝试直接从终端运行 python 脚本。为此,我已将包含代码的目录添加到我的环境 PATH 变量中。但是,我可以在指定完整路径时运行,但在调用脚本时却不能运行。

(base) DS:~ $ /home/user_abc/my_codes/status.py
Everything is ok!
(base) DS:~ $ echo $PATH
/home/user_abc/anaconda3/bin:/home/user_abc/mycodes:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/bin
(base) DS:~ $ status.py
-bash: status.py: command not found
(base) DS:~ $ /status.py
-bash: /status.py: No such file or directory
(base) DS:~ $ ./status.py
-bash: ./status.py: No such file or directory
(base) DS:~ $

我的shebang看起来就是这样。

#!/home/user_abc/anaconda3/bin/python3


(base) DS:~ $ python3 status.py
python3: can't open file status.py': [Errno 2] No such file or directory
(base) DS:~ $ python status.py
python: can't open file 'status.py': [Errno 2] No such file or directory
(base) DS:~ $

虽然我不想要 python,只是想像任何其他命令一样调用脚本。

3 个答案:

答案 0 :(得分:2)

您的 PATH 不包括脚本的路径。

您在路径中提到了 /home/user_abc/mycodes,但 python 脚本的位置在 /home/user_abc/my_codes/

运行此命令以解决问题。

$ export PATH=$PATH:/home/user_abc/my_codes
$ status.py

答案 1 :(得分:1)

您的 PATH 似乎有误。

/home/user_abc/mycodes 应该是 /home/user_abc/my_codes

答案 2 :(得分:0)

好吧,您至少需要像这样提及相对路径:

$ python my_codes/status.py

要了解有关相对路径的更多信息,请参阅此处:link

你需要提到python,因为它不是一个可执行文件,也就是说,它只是一个脚本,我们需要提到我们想要执行它的解释器。