繁体   English   中英

脚本在 PATH 上,但 python3 脚本失败:没有这样的文件或目录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM