我有一个用python 3编写的脚本/应用程序/程序。我将它上传到我的Ubuntu框并更改了允许所有人执行的权限。我能够运行python myapp.py没有问题,但我无法运行myapp.py。我收到一个错误,它不是一个公认的命令。我在顶部
#!/usr/bin/env python3
从我到目前为止所阅读的内容来看,这应该是正确的。我甚至试过
#!/usr/bin/python3
程序中的称为myapp.py
它们都不起作用。
我正在关注一个在线课程,一切顺利,直到我们通过设置执行设置来运行常规程序之类的python脚本。
答案 0 :(得分:1)
由于某些安全考虑因素,您无法在没有目录名的情况下按名称在unix中执行文件,因此您必须添加.
作为目录(它看起来像./myapp.py
)
答案 1 :(得分:1)
如果您正在谈论,从任何目录执行它,您需要做两件事。
设置path
变量。假设我需要从任何目录
Test.py
export PATH=$PATH:/home/thefourtheye/Desktop/
授予文件执行权限
chmod 755 /home/thefourtheye/Desktop/Test.py
然后我只需输入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)