我是编码的新手,我正在编写简单的短脚本来学习和练习。我正在看一本教科书,并且进入了有关输入的章节。即使按照字符的代码字符,它也不会编译。最终,我发现我正在使用python3语法,而计算机似乎期望使用python2。
如何让我的计算机识别python3语法?
代码是原子编写的,因此起初我四处寻找一个可能会妥善处理的软件包。然后一个朋友走了过来,我们花了大约两个小时将头撞了进去。最后,他设置了一个叫做IDLE的东西,它产生了一个python3.6.7 shell,它确实运行了代码,所以我知道它的可能。我也看过其他论坛,似乎很合适的一种解决方案是在bash中设置别名。但是,当我尝试从主目录访问bash文件时,它拒绝了我的访问。另外,我有点害怕这样做,因为我看到另一个新手发来的帖子,说他搞砸了自己的bash,现在他无法登录自己的设备。简而言之,可能有一个简单的解决方案,但是我太新了,没听说过。
顺便说一句,我正在将Ubuntu 18.04作为操作系统运行
代码如下:
message = input('a')
print(message)
这就是整个脚本。两行。它应该只在控制台上打印“ a”,接受我键入的任何内容,然后将其打印回控制台。相反,它会产生此错误:
aWhatever
Traceback (most recent call last):
File "/home/username/Desktop/Coding Projects/Python-Projects/Python-Projects/inputs_and_while_loops.py" line 1, in <module>
message = input('a')
File "<string>", line 1, in <module>
NameError: name 'Whatever' is not defined
=================================================
(The program excited with code: 1)
Press any key to continue...
同样,代码是用python3语法编写的,而这似乎是在期待python2语法(当我将其更改为它时,它将起作用)
我知道您经验丰富的开发人员可能会对这个问题有多简单感到笑,但是如果您有时间,请帮助年轻的编码人员。另外请记住,我对编程和使用ubuntu基本上一无所知,因此,如果您有答案,请尽可能详细地解释所有内容。从字面上正确使用该词。我这样做是为了学习。
感谢您花一点时间阅读这篇文章!
编辑:为清楚起见,我正在Atom IDE中编写此代码。用户paul41提供了一种有效的方法(感谢paul),方法是将脚本cd进入脚本所在的目录,并在文件上使用python3命令。尽管确实可以编译它,但是它有点笨拙,我正在寻找一种方法来从Atom进行编译。我当前用于运行代码的软件包是python-run-terminalnx。这是指向页面的链接:https://atom.io/packages/python-run-terminalnx 由于此软件包打开了一个终端窗口来运行代码,因此我认为我的PATH中有一些设置(我仍然不太了解如何使用),可以通过命令对其进行更改以使其使用python3在默认情况下编译python脚本时,使用python2语法代替python2语法。抱歉,我应该更清楚
答案 0 :(得分:0)
您可以通过以下方式进行操作:
python3 <path to the scipt>
。要检查python3的安装位置,请使用which python3
。#!/usr/bin/env python3 . # in my case this was the location of python3
message = input('a')
print(message)
执行此命令以使脚本可执行后:
chmod +x <path to the scipt>
最后,运行以下命令:
go to the directory where the script is residing
./<path to the scipt>
有关shebang的更多详细信息,请参见以下链接:Should I put #! (shebang) in Python scripts, and what form should it take?。
答案 1 :(得分:0)
Ubuntu同时安装了Python 2和Python 3。使用python my_program.py
运行程序使用Python2。要使用Python 3,运行python3 my_program.py