我是python的初学者,这里有一个问题一直困扰着我。 例如,一个非常简单的代码:
a = int (input (' please a number '))
if a <0:
a = 0
print ('change to zero')
elif a == 0:
print ('zero')
elif a == 1:
print ('one')
else:
print ('more')
当我输入python testif.py
(文件名)时,此代码在终端中运行良好。但是当我尝试输入./testif.py
时,它会显示:
-bash: ./testif.py: Permission denied
这也发生在ubuntu中,我试图添加
#!/usr/bin/python
在第一行,它仍然无法正常工作
所以请帮助我解决我的问题,一直困扰着我。
答案 0 :(得分:1)
如果您希望能够从命令行(./scriptname.py
)运行脚本而无需键入python3 scriptname.py
,则需要使用chmod +x filename.py
使文件可执行,并且添加一个shebang(#!/usr/bin/env python3
)作为脚本的第一行。这需要为您编写的每个新脚本完成,但是对于某个文件完成后,不需要再为该文件执行此操作。或者,当然,您可以习惯于撰写python3 scriptname.py
。
为了清楚(从评论中讨论) - 在标准的vanilla Ubuntu系统上/usr/bin/python
应该指向Python 2,只需从命令行运行python
就可以调用Python 2 或 Python 3,取决于环境的设置方式(非系统Python安装在/usr/local/bin
,主目录或PATH之前的其他位置/usr/bin
,运行virtualenv,自定义符号链接,等等。)。为了绝对安全,请遵循J.F. Sebastian的advice:如果您的程序在两种语言版本中运行都没有问题,请使用#!/usr/bin/env python
。如果它是Py2特定的,请使用python2
,如果它是Py3特定的,请使用python3
。