簡體   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