[英]MacOS terminal command 'python3 file.py' goes into directory instead of executing script file from PATH
[英]script is on PATH, yet python3 script fails: no such file or directory
dag@Arokh:~$ source /home/dag/.bashrc
dag@Arokh:~$ echo $PATH
/home/dag/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
dag@Arokh:~$ python3 /home/dag/.local/bin/facemorpher --version
Face Morpher 1.0
dag@Arokh:~$ python3 facemorpher --version
python3: can't open file 'facemorpher': [Errno 2] No such file or directory
将目录添加到PATH
似乎没有帮助。 如何让python3 facemorpher
从任何目录工作?
python3
在查找脚本时不注意PATH
变量。 此变量控制shell查找可执行文件的位置。
那么现在应该做什么,只要脚本具有可执行权限和像#!/usr/bin/env python3
这样的有效 shebang 作为它的第一行,就是简单
facemorpher
前面没有python3
应该运行脚本。 也许这实际上是您想要和需要的。
没有任何选项的python3
命令需要一个文件名参数; 没有简单的方法让它查找指定目录中不存在的文件(如果文件名没有明确的目录部分,则为当前工作目录;这是操作系统解析相对文件名的方式,并且可能不应该被单个命令弄乱)。 有关此的更多详细信息,也许另请参阅./
和~/
之间的区别
作为记录, chmod a+x path/to/scriptname
为系统上所有用户添加脚本的执行权限, #!
后面的shebang中的路径应该指向您的 Python 解释器的完整路径,或者指向诸如env
之类的实用程序的完整路径,它在您的PATH
上找到它并仅根据命令名称执行它(此处为python3
;但在某些系统上,Python 解释器可执行文件的文件名是只是python
,或者更广泛地说,系统所有者决定命名它)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.