如何在终端(Ubuntu)上运行 Python 脚本?

15

我是Python新手,已经学习了几周。但是现在我刚更换了操作系统并开始使用Ubuntu,我无法在终端上运行任何脚本。

我确保有加入 #!/usr/bin/env python,但是当我在终端中输入例如 python test.py 时,终端会显示如下错误信息:

python: 无法打开文件 'test.py': [Errno 2] 没有那个文件或目录

我该怎么做?
我必须将文件保存在特定的文件夹中才能在终端上运行吗?


4
我只想补充一点,如果你使用 #!/usr/bin/env python,你可以直接在终端输入 ./test.py 来执行你的脚本,因为终端会读取你的头文件并使用 Python 来启动脚本。但在此之前,你需要通过 chmod +x test.py 命令来更改执行权限。我知道对于初学者来说可能有些特殊,但你将来会感激这个方法的 ;) - VivienG
5个回答

25

这个错误:

python:无法打开文件'test.py': [Errno 2] 没有那个文件或目录

意味着文件"test.py"不存在。(或者它存在,但不在当前工作目录中。)

我必须将文件保存在特定的文件夹中才能在终端上运行吗?

不,可以放在任何地方。但是,如果你只输入了"test.py",就需要在包含test.py的目录中。

你的终端(实际上是终端中的shell)有一个"当前工作目录"的概念,即它当前所在的目录(文件夹)。

因此,如果你键入类似以下内容的命令:

python test.py

test.py 需要在当前工作目录中。在 Linux 中,您可以使用 cd 更改当前工作目录。如果您是新手,则可能需要查看教程。(请注意,对于我来说,该搜索的第一个结果是此 YouTube 视频。视频中的作者正在使用 Mac,但是 Mac 和 Linux 都使用bash作为 shell,因此它应该适用于您。)


1
感谢您的回答,我对终端也非常陌生,所以遇到了一些困难。我的问题已经解决了,谢谢! - wombatp

1
将PATH设置如下:
在csh shell中 - 输入setenv PATH "$PATH:/usr/local/bin/python"并按Enter键。
在bash shell(Linux)中 - 输入export PATH="$PATH:/usr/local/bin/python"并按Enter键。
在sh或ksh shell中 - 输入PATH="$PATH:/usr/local/bin/python"并按Enter键。
注意 - /usr/local/bin/python是Python目录的路径。
现在按照以下方式运行:
-bash-4.2$ python test.py

Hello, Python!

0

将你的Python文件保存在一个容易找到的地方。然后使用命令行导航到该位置(cd /home/[profile]/spot/you/saved/file),或者使用文件浏览器前往该位置。如果你使用后者,请右键单击并选择“在终端中打开”。当终端打开时,输入“sudo chmod +x Yourfilename”命令。在输入密码后,输入“python ./Yourfilename”命令,这将在命令行中打开你的Python文件。希望这可以帮助到你!

运行Linux Mint操作系统


-1

抱歉,我也是新手,我遇到了这个问题:

./hello.py: 第1行:附近有语法错误的未预期标记"Hello World"' ./hello.py: 第1行:print("Hello World")'

我为Python 'deal'添加了文件头#!/usr/bin/python

然后用'./hello.py'简单地执行了程序。


1
已经有一个好的答案了,这是不必要的添加。 - Nitin Nain

-9

首先使用任何编辑器(如vi或gedit)创建您想要的文件。并且使用.py扩展名保存。其中第一行应该是

#!/usr/bin/env python

1
原帖提到test.py文件中有#!/usr/bin/env python - mfitzp
最初发布的答案在#!之间有一个空格,这会使其无效。我已经修复了这个问题,但还是投票删除它,因为它是多余的。 - tripleee

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接