Shebang系列为Python 2.7

时间:2014-01-17 15:18:16

标签: python linux

我在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进行编译。

3 个答案:

答案 0 :(得分:14)

Shebang将:

#!/usr/bin/env python2.7

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

如果你真的想:

python2.7 -m compileall .

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

答案 1 :(得分:0)

我不认为只有一个sheebang线才会这样做。

您可以尝试输入

#! /usr/bin/env python2.7

虽然。 - 但这对你来说真的很合适 将通过virtualenv使用虚拟python环境。

请检查http://www.virtualenv.org/en/latest/virtualenv.html - 否则你将冒险使用2.7 Python运行代码但是尝试 加载python 2.6模块和库,以及更糟糕的情况。

此外,建议在系统中使用两个相同主要版本的Python 是保持两个不同的前缀,如/ usr中的系统,以及另一个中的系统 / opt(/ usr / local不足以实现明确的分离)。

答案 2 :(得分:0)

您可以将shebang更改为#!/usr/bin/env python2.7

或者您可以使用environment modules并让shebang成为#!/usr/bin/env python。当您加载python 2.7模块(可以是您的默认设置)时,脚本使用python 2.7运行,当您加载python 2.6模块时,脚本使用python 2.6运行。

在这个盒子上我安装了python 2.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建议。