如何将Python代码作为脚本运行?
我需要帮助在ubuntu中运行python
我可以在我的终端中运行python而没有问题,但是当我创建.py
文件时,我无法运行它。
它是如何工作的( python2
示例,对于python3
,用python3
替换所有出现的python
):
-
python /path/to/script.py
- 如果文件可执行或不可执行,则有效
- shebang(
#!/usr/bin/env python
)在脚本的头部是很好的做法,但不需要
-
/path/to/script.py
- 如果脚本可执行,则有效
- 需要shebang(
#!/usr/bin/env python
)
-
script.py
- 如果脚本在$ PATH中,则有效
- 脚本需要可执行
- filename需要扩展名
- 需要shebang(
#!/usr/bin/env python
)
-
script
- 如果脚本在$ PATH中,则有效
- 脚本需要可执行
- 文件名应该没有扩展名
- 需要shebang(
#!/usr/bin/env python
)
更多信息:命令,shebang或扩展的优先级?
shell可以从两个源(按优先顺序)获取有关如何运行脚本的信息:
- 命令中的语言信息:
python
- shebang,在剧本的第一行:
#!/usr/bin/env python
然而,语言扩展不起作用(!)。
几个例子:
-
bash
脚本,命令中的正确(语言)信息, 不正确的 shebang, 不正确的扩展名:#!/usr/bin/env python echo 'Monkey eats banana'
跑了:
$ sh /path/to/script.py > Monkey eats banana
如果运行正确,命令中的信息优先于shebang和扩展名。
-
一个(可执行的)
python
脚本,运行扩展名不正确 ,但正确的shebang:#!/usr/bin/env/python print "Monkey eats banana"
跑了:
$ /path/to/script.sh > Monkey eats banana
运行正确,shebang中的信息优先于扩展。
-
一个(可执行的)
python
脚本,具有正确的扩展名,但没有shebang(并且命令中没有语言信息):print "Monkey"
跑完命令:
$ /path/to/script.py > Error: no such file "Monkey"
虽然语言扩展,但运行不正常!
要运行python脚本,请使用python
:
python script.py
可能你需要让它可执行。
chmod +x /path/to/your/file.py
这个问题在这里得到解答: 在终端中运行Python文件
如果这些都不起作用:
您可以将代码保存为带有.py文件扩展名的gedit中的脚本,即。 exampleFile.py
但是在第一行添加#!/usr/bin/python
并保存。
通过输入使脚本可执行
chmod +x exampleFile.py
进入终端。
(我通常将脚本保存在一个单独的目录中,并通过cd exampleDirectory
调用终端中的目录,然后在该特定目录中执行脚本)
[您也可以通过在终端中输入l
命令来列出该目录中的文件来检查脚本是否在您的目录中,如果脚本可执行则该脚本应为绿色]
然后你可以调用脚本在终端中运行:
python exampleFile.py
如果您更喜欢该版本,可以在列出python
所有区域中用python3
替换python
此外,如果这些都不起作用,您可以使用vim
或其他第三方软件编写和运行python脚本。