直接从命令行运行 Python 脚本


#!/usr/bin/env python

我把它放在脚本的顶部。 我已经看到这应该使脚本可以从命令行运行而无需python programname.py. 除非我误解了,否则只要我在脚本顶部有上面的行,我应该可以使用programname.py。 这是对的吗?

它对我不起作用,我只是收到一个错误,指示我必须在"呼叫"开始时使用python

Python 脚本的通用运行

你几乎可以普遍运行没有 shebang ( #! (

python myscript.py

或者几乎等效(它将当前目录放在您的路径上并执行名为 myscript 的模块((最好这样做!

python -m myscript

从命令行,只要您安装了 Python 并在您的路径环境变量上(即设置为使用 python 运行,如果安装,通常是这种情况(。

Shebangs(#!(是一个Unix的东西。

当你使用它时,shebang通常用于在Unix平台(通常是Apple或Linux(上运行。Windows通常需要cygwin使用shebang。

您通常可以使用以下方法默认为系统路径上可用的任何 python:

#!/usr/bin/env python

假设你在Unix上,你可以尝试其他位置进行python设置,比如:

#!/usr/bin/python

蒙混过关

您可以使用 unix which 命令查看您当前正在使用的 python,因此如果您想查看您的 python 来自哪里,请使用以下命令:

which python

或者在Windows上(cygwin可能可以运行shebang(:

where python

在 Linux/Unix 上,你也需要执行 perms 才能以这种方式运行文件。使用 chmod

chmod +x myscript.py

(chmod 也可能适用于 Windows 中的 Cygwin(

如果您不以 root 身份运行,则可能需要 sudo ,这将是

sudo chmod +x myscript.py

然后尝试运行(在同一目录中(

./myscript.py 

使文件可执行

sudo chmod +x /path/to/file.py

然后从与 file.py 相同的目录中:

./file.py

我也有同样的情况:我无法运行任何可执行文件。原因是我在没有exec权限的情况下将分区(我的硬盘(放入/etc/fstab。解决方案是改变:

UUID=asdfasfasdfa /mnt/fee auto rw 0 1

UUID=asdfasfasdfa /mnt/fee auto defaults 0 1

因为exec包含在defaults = rw, suid, dev, exec, auto, nouser, and async.在NTFS或其他设备上,您无法更改分区中文件或文件夹的权限,但这不是OP的问题,因为对文件的权限设置正确。

相关内容

  • 没有找到相关文章

最新更新