为什么具有执行权限的python脚本不能在Ubuntu上运行?

时间:2013-12-26 12:34:51

标签: python ubuntu

我有一个用python 3编写的脚本/应用程序/程序。我将它上传到我的Ubuntu框并更改了允许所有人执行的权限。我能够运行python myapp.py没有问题,但我无法运行myapp.py。我收到一个错误,它不是一个公认的命令。我在顶部

#!/usr/bin/env python3

从我到目前为止所阅读的内容来看,这应该是正确的。我甚至试过

#!/usr/bin/python3
程序中的

称为myapp.py 它们都不起作用。 我正在关注一个在线课程,一切顺利,直到我们通过设置执行设置来运行常规程序之类的python脚本。

7 个答案:

答案 0 :(得分:1)

由于某些安全考虑因素,您无法在没有目录名的情况下按名称在unix中执行文件,因此您必须添加.作为目录(它看起来像./myapp.py

答案 1 :(得分:1)

如果您正在谈论,从任何目录执行它,您需要做两件事。

  1. 设置path变量。假设我需要从任何目录

    执行Desktop中的Test.py
    export PATH=$PATH:/home/thefourtheye/Desktop/
    
  2. 授予文件执行权限

    chmod 755 /home/thefourtheye/Desktop/Test.py
    
  3. 然后我只需输入Test.py即可执行。

答案 2 :(得分:0)

你试过了吗?

$ sudo chmod a+x myapp.py

然后使用:

运行python代码
$ ./myapp.py

答案 3 :(得分:0)

.不在您的路径上(并且可能不是出于安全原因),因此Ubuntu不会在当前目录中查找要运行的myapp.py程序。您需要明确指定./myapp.py以指示您要在当前目录中运行myapp.py文件。

答案 4 :(得分:0)

您应该将其称为

./myapp.py

或当前目录应该在PATH环境变量中(作为完整目录路径名称或“。”表示动态当前路径),请检查

echo $PATH

添加它可以运行

export PATH=$PATH:.

答案 5 :(得分:0)

如果你想运行它:

user@machine:~$ myapp.py 

您必须将脚本放在/ usr / bin /或/ bin /或类似的东西中。在其他情况下,您必须运行:

user@machine:~/appFolder/$ ./myapp.py 

答案 6 :(得分:0)

对于linux用户,可能是文本格式的dos / unix问题!

试,

sudo dos2unix name_of_your_script

那么shebangs可能会正常工作!那就是发生在我身上的事。

PS: 当然,你的脚本也必须是可执行的 (sudo chmod + x name_of_your_script)