我在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进行编译。
答案 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建议。