jma*_*au5 15 command-line python executable filenames
我想通过简单地输入script从终端调用 python 脚本script.py。这可能吗?如果是这样,如何?
我知道我可以通过在脚本顶部添加#!/usr/bin/env python来避免输入python script.py,但我仍然必须添加后缀.py才能运行脚本。
Pat*_*ick 22
Unix/Linux 文件系统不像 Windows 那样依赖扩展。您不应该需要.py
文件末尾的 来运行它。
您可以通过使用解释器调用它来运行该文件:
python ScriptFile
Run Code Online (Sandbox Code Playgroud)
或者通过将其标记为可执行并在第一行定义解释器(例如#!/usr/bin/python
)。
如果您无法使用以下命令执行文件:
/Path/to/ScriptFile
Run Code Online (Sandbox Code Playgroud)
检查权限
ls -l ScriptFile
Run Code Online (Sandbox Code Playgroud)
您可能需要添加可执行标志,chmod
以便它为您执行。
如果您经常使用自定义脚本,您可能需要确保将存储它们的目录添加到PATH
环境变量中。
作为一种选择,您可以为脚本(.py
文件)创建包装器:
例如,您有一个脚本,runme.py
因此您可以创建新文件runme
来包装脚本:
#!/usr/bin/env python
import runme
Run Code Online (Sandbox Code Playgroud)
然后runme.py
仅通过runme
在 shell 中调用来调用该功能。
这对于多平台脚本很有用,因为在 Windows 平台上,您可以.py
仅通过名称分配要调用的文件,而无需扩展名和头文件中的shebang,但在 linux 平台上则不能,因此包装器出来了。