1

我有一个基本问题,我不知道如何在不使用 python 关键字的情况下在 Ubuntu 中从命令行运行 Python 脚本。所以,我在我的 Python 脚本中放了一个 shebang,这样我就可以从命令行将它作为 nameofthescript 运行,但我只能通过使用 ./nameofthescript 来实现。我希望能够通过在 cmd 中键入脚本的名称来运行它。我在网上搜索并尝试了所有可能的方法,但没有一个有效。任何帮助表示赞赏。下面是我为测试它而编写的一个简单代码。

我已经尝试过 chmod +x this file。此文件也保存为没有扩展名。

#!/usr/bin/python

import sys

def main(argv):
    print(argv)
    print("Hello")

if __name__ == "__main__":
    main(sys.argv[1:])
4

4 回答 4

1

问题在于您的 $PATH 变量。

当你运行一个命令(前面没有“./”)时,Ubuntu 会查看 $PATH 变量中列出的所有文件夹。你可以通过运行看到它:

echo $PATH

如果 Ubuntu 在任何这些文件夹中都没有看到该命令,它会说找不到它。

您可以通过更改配置文件中的 $PATH 变量来解决此问题。转到您的主目录并打开“.profile”文件(注意前面的句点)并将以下内容添加到末尾:

PATH = "/path/to/folder/with/file/:$PATH"

但是,如果它是一个程序,您可能会看到自己在未来使用了很多并且您不想弄乱您的 $PATH,我建议您将完成的命令粘贴到您的“/usr/local/bin”文件夹中。我发现该文件夹被用作您自己创建/编译的程序的“奇怪的抽屉”,所以我通常最终将我的个人工具放在那里而不是修改我的 $PATH。

于 2019-04-16T18:41:39.187 回答
0

我找到了解决这个问题的方法。我仍然在 Python 脚本的顶部包含 shebang #!/usr/bin/env python3.6。然后我会去 cd /etc->sudo nano bash.bashrc,在最后一行,我所做的只是添加一行(别名 nameofscript = "./nameofscript")。从那里我重新启动了我的 Ubuntu,并且能够仅通过脚本名称运行我的 Python 脚本。谢谢大家的帮助。

于 2019-04-16T21:58:25.933 回答
0

这就是它应该如何工作的方式,不仅适用于 Python 脚本,而且适用于任何可执行文件。请参阅:为什么在可执行文件或脚本名称之前需要 ./(点斜杠)才能在 bash 中运行它?

于 2019-04-16T18:33:56.857 回答
0

请试试这个

在 unix 系统上,可以使用以下过程使 Python 脚本可执行:

将此行添加为脚本中的第一行:

#!/usr/bin/env python

在 unix 命令提示符下,键入以下内容以使 myexe.py 可执行:

$ chmod +x myexe.py

myexe.py移动到您的bin目录中,它将可以在任何地方运行。

$ cp myexe.py /usr/bin

或者

$ cp myexe.py /usr/local/bin

所以myexe.py

#!/usr/bin/env python
print("Hello This is executable python script")

现在转到终端并输入 myexe.py

$ myexe.py
Hello This is excutable python script

如果你想通过双击删除 .py 扩展名来运行

源链接

于 2019-04-16T18:41:37.127 回答