Ubuntu 在终端中执行python代码
我是python的初学者,这里有一个问题一直困扰着我。 例如,一个非常简单的代码:Ubuntu 在终端中执行python代码,ubuntu,python-3.x,terminal,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') 这也发生在ubuntu中,我试图添加 #!/usr
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')
这也发生在ubuntu中,我试图添加
#!/usr/bin/python
在第一行,它仍然不起作用
因此,请帮助我解决我的问题,一直困扰着我。如果您希望能够从命令行(
/scriptname.py
)运行脚本,而不必键入python3 scriptname.py
,那么您需要使用chmod+x filename.py
使文件可执行,并添加一个shebang(#!/usr/bin/env python3
)作为脚本的第一行。这需要为您编写的每个新脚本完成,但一旦为某个文件完成,就不需要为同一个文件再次执行。当然,您也可以习惯于编写python3 scriptname.py
需要明确的是(从评论中的讨论中)-在标准的香草Ubuntu系统上,
/usr/bin/python
应该指向Python2,仅仅从命令行运行python
可能会调用Python2或Python3,这取决于环境的设置方式(非系统Python安装在/usr/local/bin
、主目录或/usr/bin
之前路径上的其他位置,运行virtualenv、自定义符号链接等)为了绝对安全,请遵循J.F.Sebastian的建议:如果您的程序在两种语言版本下都能正常运行,请使用#!/usr/bin/env python
。如果它是Py2特定的,请使用python2
,如果它是Py3特定的,请使用python3
,您是否尝试将其作为别名添加到bashrc文件中?我会这样做以允许它的运行方式是./scriptname你让脚本可执行了吗?(chmod+x testif.py
)这是可行的,但每次我想输入时都需要这样做。/。有什么方法可以让我一次性解决吗?@XiaomingWu:如果你不想让每个脚本都可执行的话(如chmod+x testif.py
——注意:每个脚本只需执行一次)然后将其作为python testif.py
或python-mtestif
运行,如果testif.py的目录位于sys.path
(当前目录为).python3 scriptname.py和./scriptname之间有什么区别吗?如果我只写python scriptname.py,这是否意味着它使用的是python 2.7.5而不是python 3.4.1?@XiaomingWu您需要包含文件的全名,包括.py
,如果存在的话。如果添加python 3 shebang并使文件可执行,那么/scriptname.py
与python3 scriptname.py
(假设您使用的是Python 3)。Python scriptname.py
将使用Python 2运行它,python3 scriptname.py
将使用Python 3运行它。假设您使用的是input()
在上面的示例代码中,您需要使用Python 3运行它以获得所需的结果,因为Py2中的input()
表示完全不同的含义-在Py2中使用raw\u input()
,input()
在Py3中。python
可能也指python 3,例如,在活动的virtualenv中。尽管大多数(POSIX)上默认的python
系统引用Python 2解释器。请参阅,简短版本:如果您的脚本源代码与Python 2和Python 3都兼容,请使用Python
shebang,否则请显式使用python2或python3。@J.F.Sebastian这是真的,但我怀疑OP使用的是virtualenvs。在Ubuntu上,/usr/bin/Python
是Py2,而/usr/bin/python3
是Py3,至少在14.04,所以我试图根据OP的个人情况定制答案和评论。@MattDMo:我们不知道是谁安装了OP的计算机。OP可能不知道python
命令属于virtualenv。声称python
意味着python2
是误导性的。
#!/usr/bin/python