无法在不更改目录的情况下从终端运行 Python 脚本,即使目录包含在 PATH 中



OS:Mac 10.14.6

Python版本:3.8.5

Python和Bash的新手,如果这是一个愚蠢的问题,我很抱歉,但我在任何地方都找不到答案。我在这个线程上找到的最接近的答案是这个答案,然而,我已经在该文件上执行了chmod +x,以更改权限,使其可以执行,我再次按照说明进行操作,但仍然无法使其工作。

基本上,我想通过终端从桌面上的指定文件夹(文件路径~/Desktop/Python Scripts(运行Python脚本,而不必更改目录(纯粹是懒惰(。

我将文件夹添加到PATH中,当我在Terminal中运行echo $PATH时,可以看到它已列出。我以为这样就可以了,但当我像往常一样更改目录时,尝试用命令python boxprintV2.py运行程序时,我会得到python: can't open file 'boxprintV2.py': [Errno 2] No such file or directory

如果我像以前一样更改当前目录,这个命令可以很好地工作,并且我可以毫无问题地运行程序,但我希望从新的终端窗口运行,而不必每次都更改目录。已使用chmod +x更改文件的权限

我的程序中的Shebang是#!/usr/bin/env python3

如果运行命令python <filename>,Python解释器将只检查当前目录。因此,只有当您的工作目录是"~/Desktop/Python Scripts"时,这才有效,正如您已经发现的那样。

因为您的脚本被标记为可执行,并且它在文件的开头包含一个shebang,所以您只需输入boxprintV2.py就可以直接从命令行执行它。Bash将在$PATH中的所有目录中搜索该文件并执行它

好的,我找到了一个解决方法,在另一个线程上按照这个答案创建一个shell脚本。

我所做的是打开一个空白的文本编辑文件,转到格式并将其转换为纯文本(或⇧ + ⌘ +T,其切换富文本/纯文本(。

从那里我把这些命令输入到文档中,如下所示:

#! /bin/bash

cd ~/Desktop/Python Scripts

python boxprintV2.py

当我保存时,我没有指定文件扩展名,而是取消选中了写着";如果没有提供扩展名,请使用.txt";。我不确定这是否有必要,但我只是为其他可能和我有同样(懒惰(问题的人详细介绍我的确切工作流程。

然后我回到一个空白的终端窗口,输入:

CCD_ 15以允许所有用户执行shell脚本。

从这里我可以打开桌面上的Python脚本文件夹,双击现在是.exe的纯文本文件,打开一个新的终端窗口,运行我的Python脚本!

它真的会拯救我几十秒的生命。我相信我无论如何都会浪费它们。

最新更新