Python 2.7的Shebang行

2024-06-16 10:59:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经在Linux Centos中安装了Python2.7,它附带了默认的Python2.6安装

默认Python

[root@linuxhost PythonProjects]# python -V
Python 2.6.6

默认Python2.7

[root@linuxhost PythonProjects]# python2.7 -V
Python 2.7.3

现在我需要编写基于python2.7版本的程序…python2.7的shebang行是什么

另外,我将如何使用python2.7编译。


Tags: 程序版本linuxroot附带centosshebang行是
3条回答

谢邦将:

#!/usr/bin/env python2.7

我不确定为什么要编译Python文件(Python会在导入时自动执行)。

如果你真的想:

python2.7 -m compileall .

此命令将把当前目录中的.py文件编译为.pyc:

我不认为只有希邦线能做到。

你可以试着放进去

#! /usr/bin/env python2.7

不过。-但对你来说 将通过virtualenv使用虚拟python环境。

请检查http://www.virtualenv.org/en/latest/virtualenv.html- 否则,您将冒着使用2.7 Python运行代码的风险,但尝试 加载Python2.6模块和库,以及更糟糕的场景。

另外,建议在系统中使用两个相同的主版本Python 在不同的前缀中保持这两个,比如系统一个在/usr中,另一个在 /opt(/usr/local不足以进行清晰的分离)。

你可以把shebang改成#!/usr/bin/env python2.7

或者你可以使用environment modules,让shebang成为#!/usr/bin/env python。当您加载Python2.7模块(可以是您的默认模块)时,脚本将使用Python2.7运行,当您加载Python2.6模块时,脚本将使用Python2.6运行。

在这个框中,我安装了Python2.6和2.7。根据加载的模块,将运行选定版本的python。库、模块和包始终按照正确的版本加载。

$ cat t.py 
#!/bin/env python
import sys
print(sys.version)
$ ./t.py 
2.6.6 (r266:84292, Jul 10 2013, 22:48:45) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)]
$ module load python/2.7.3 
$ ./t.py 
2.7.3 (default, Nov  7 2012, 16:29:59) 
[GCC 4.7.2]
$ 

或者您可以使用virtualenv作为@jsbueno的建议。

相关问题 更多 >