在终端中执行python代码

时间:2014-10-13 19:09:43

标签: ubuntu python-3.x terminal

我是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

在第一行,它仍然无法正常工作

所以请帮助我解决我的问题,一直困扰着我。

1 个答案:

答案 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