脚本可以是环境变量吗

Can a Script be an Environment Variable

我有一个 Python 脚本,我希望它可以在任何地方执行。在 Linux 或 Windows 中,但在这种情况下最好在 Windows 中。将脚本的路径放入 Windows 下的 PATH 中是行不通的,因此从某个目录调用 python my_script.py 会导致该目录中没有这样的文件的消息。那么,这在某种程度上可能吗?

您可以尝试创建一个别名:

Linux

  1. 在您的主文件夹中创建一个 .bash_aliases 文件
  2. 添加别名,例如 alias pscript='python /home/pythonscript.py'
  3. 注销并重新登录或执行 source .bash_aliases

Windows

  1. 运行doskey pscript=python C:\script.pyRead more here

PATH 用于搜索可执行文件,这不包含在 windows 个脚本文件中。

解决方法是将脚本转换为批处理文件,请参阅 here 如何简单地让脚本也充当批处理文件

对于 运行 您的脚本的操作系统,它需要找到它(PATH 变量),识别它是可执行的并且知道应该由哪个程序执行它。您似乎已经处理了 PATH 部分,所以现在处理其他两个部分。

在 unixy 系统上,您需要使脚本可执行。要设置用户可执行位,请执行 chmod u+x myscript.py。然后你需要告诉系统哪个程序应该运行它。通常,您使用 "shebang" 作为文件中的第一行:

#!/usr/bin/env python3

系统将在路径中搜索名为 "python3" 的程序(对 python 2 个脚本使用 "python")并将该可执行文件用于 运行 脚本。

在 Windows 上,您需要将文件扩展名 (.py) 与 python 可执行文件相关联。安装 python 时通常会为您完成。如果没有,您可以深入研究 ftype, assoc and pathext here.

Windows 不关心 shebang(除非你是 运行ning cygwin,然后查看上面的 unixy 系统)所以同一个脚本可以存在于两个世界中。

一旦脚本可执行,您就可以直接调用它而不是执行 python 并将文件作为脚本名称。它只是

myscript.py