我如何从 shell 直接运行我的 python 程序?

我如何从 shell 直接运行我的 python 程序?

我写了一个脚本。它启动后不会停止,并不断从互联网获取数据。我可以这样调用它:

cd /User/Desktop/project/internetScanner/
python3 main.py start

但我想像这样直接从终端在目的地内调用它:

internetScanner start

我怎样才能这样做?

答案1

您可能应该将文件重命名main.pyinternetScanner。 *nix 上的扩展名完全是可选的。 在这里应该无关紧要。

mv main.py internetScanner

然后,在该文件的最前面添加以下行:

#!/usr/bin/env python3

这将确保当 shell 执行文件时,它知道使用什么python3来解释内容。这被称为舍邦.现在,使文件可执行:

chmod +x internetScanner

您现在可以从内部运行您的程序/User/Desktop/project/internetScanner/

./internetScanner start

您的程序将在前台运行,并持续运行,直到您按下Ctrl- C。如果您不想这样,您也可以在后台启动该程序,方法是在命令后添加一个 & 符号:

./internetScanner start &

这将让你的程序运行,但你可以继续使用你的 shell。这称为作业控制,有一个简单的教程这里

如果您现在希望能够从系统上的任何位置运行该程序,则需要将internetScanner目录添加到您的PATH什么是 PATH 和其他环境变量?如何设置或使用它们?

答案2

假设/User/Desktop/project/internetScanner/不需要中的其他文件,如果您想为单个用户安装,请链接(ln -smain.py$HOME/bin/internetScanner。您可能需要$HOME/bin先进行 mkdir。

下次登录时,$HOME/bin可能会添加到您的 PATH。如果您希望它可供所有用户使用,请将其复制到/usr/local/bin

如果必须在中执行/User/Desktop/project/internetScanner/,则首先导入os并调用

os.chdir('/User/Desktop/project/internetScanner/') 

$HOME/bin或者在或中创建一个启动器脚本,/usr/local/bin更改/User/Desktop/project/internetScanner/并执行该脚本。

答案3

放入alias internetScanner "python /User/Desktop/project/internetScanner/main.py".aliases 文件(用于 csh)。对于 bash,放入alias internetScanner="python /User/Desktop/project/internetScanner/main.py".bashrc。之后,您可以从任何地方使用 internetScanner 启动。

相关内容