python升级到2.7.10及使用virtualenv搭建独立的Python环境

http://qicheng0211.blog.51cto.com/3958621/1561685

重新整理一下(2015-12-2更新):

先下载python2.7.10进行安装:

 

系统中在/usr/local/python2.7中安装了一个新版本的python后,再在新版本的python中安装ease_install-2.7, 再用新版本的ease_install-2.7安装pip2.7:

用新安装的pip2.7安装虚拟环境:

在~/.bashrc中定义环境变量:

更新环境变量:

 

指定使用python2.7创建虚拟环境:

 

 

=========================================================

经过试验,总结教训如下:

系统自带的python,也就是/usr/bin/python,一定要使用系统自带的。

可以在/usr/local/python2.7.10目录下新安装一个python, 然后使用这个python安装virtualenv和virtualenvwrapper, 然后安装ease_install, pip

然后在~/.bashrc里加入下面内容:

pip安装python-rrdtool时依赖关系报错解决:

若报错:Failed building wheel for cryptography和Failed building wheel for cffi,则安装如下包:

以上为2015-10-18号备注。

=========================================================

 

下载python2.7.10:

make时报错:Python build finished, but the necessary bits to build these modules were not found:…

首先安装依赖包:

再重试make && makei install

安装成功后查看版本:

接下来需要创建一个链接来使系统默认python变为python2.7.10。

进行更改后,yum果然无法运行了。修改/usr/bin/yum文件

将第一行的

下载ez_setup.py

 

安装好后运行 easy_install

 

 

发现命令运行会报错。重新安装python的distribution-0.6.49(0.7.3的会报错)

 

提示pip为未找到命令

好吧,这样来搞 (是因为需要配置环境变量,不然找不到pip)

 

配置环境变量

 

 

在最后加入下面内容

 

 

创建虚拟环境

mkvirtualenv demo1

  • workon 切换到环境
  • deactivate 注销当前环境
  • lsvirtualenv 列出所有环境
  • rmvirtualenv 删除环境
  • cpvirtualenv 复制环境
  • cdsitepackages cd到当前环境的site-packages目录
  • lssitepackages 列出当前环境中site-packages内容
  • setvirtualenvproject 绑定现存的项目和环境
  • wipeenv 清除环境内所有第三方包

=========================================================
virtualenv可以搭建虚拟且独立的python环境,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。
一、安装virtualenv
virtualenv实际上是一个python包,所以我们可以用easy_install或者pip安装。下面介绍在CentOS系统上的安装方法。
easy_install安装方式:

pip安装方式:

yum安装方式(epel源):

二、创建python虚拟环境
使用virtualenv命令创建python虚拟环境:virtualenv [虚拟环境名称]。

执行后,在本地会生成一个与虚拟环境同名的文件夹。
如果你的系统里安装有不同版本的python,可以使用–python参数指定虚拟环境的python版本:

实测默认情况下虚拟环境不会依赖系统环境的global site-packages。比如系统环境里安装了MySQLdb模块,在虚拟环境里import MySQLdb会提示ImportError。如果想依赖系统环境的第三方软件包,可以使用参数–system-site-packages。此外,也可使用virtualenvwrapper的toggleglobalsitepackages命令控制当前环境是否使用global site-packages。

三、启动虚拟环境
进入虚拟环境目录,启动虚拟环境,如下:

此时命令行前面会多出一个括号,括号里为虚拟环境的名称。以后easy_install或者pip安装的所有模块都会安装到该虚拟环境目录里。
四、退出虚拟环境
退出虚拟环境:deactivate

五、使用virtualenvwrapper
virtualenvwrapper是virtualenv的扩展工具,可以方便的创建、删除、复制、切换不同的虚拟环境。
1.安装virtualenvwrapper

或者:

创建一个文件夹,用于存放所有的虚拟环境:

设置环境变量,把下面两行添加到~/.bashrc里。

然后就可以使用virtualenvwrapper了。
2.创建虚拟环境:mkvirtualenv [虚拟环境名称]

注意:mkvirtualenv可以使用virtualenv的参数,比如–python来指定python版本。创建虚拟环境后,会自动切换到此虚拟环境里。虚拟环境目录都在WORKON_HOME里。
3.列出虚拟环境:lsvirtualenv -b

4.切换虚拟环境:workon [虚拟环境名称]

5.查看环境里安装了哪些包:lssitepackages
6.进入当前环境的目录:cdvirtualenv [子目录名]

进入当前环境的site-packages目录:cdsitepackages [子目录名]

7.控制环境是否使用global site-packages:toggleglobalsitepackages
8.复制虚拟环境:cpvirtualenv [source] [dest]

9.退出虚拟环境:deactivate
10.删除虚拟环境:rmvirtualenv [虚拟环境名称]

virtualenv环境下pip安装flask出错解决:

提示没有安装setuptools, 下载setuptools安装:

google(http://effbot.org/pyfaq/when-importing-module-x-why-do-i-get-undefined-symbol-pyunicodeucs2.htm)后得知:

The only way to solve this problem is to use extension modules compiled with a Python binary built using the same size for Unicode characters.

于是下载源码:

安装成功

 

Centos升级Python 2.7.12并安装最新pip

注:最新版为2.7.14, 请把以下所有的2.7.12替换为2.7.14

Centos系统一般默认就安装有Python2.6.6版本,不少软件需要2.7以上的,通过包管理工具安装不了最新的版本,通过源码编译可以方便安装指定版本,只需要把下面版本的数字换成你想要的版本号。

1.安装步骤

下载源码


 

在下载目录解压源码


 

进入解压后的文件夹


 

在编译前先在/usr/local建一个文件夹python2.7.12(作为python的安装路径,以免覆盖老的版本,新旧版本可以共存的)


 

,编译前需要安装下面依赖,否则下面安装pip就会出错


 

安装完依赖后执行下面命令


 

找到#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz去掉注释并保存(即去掉井号)

在解压缩后的目录下编译安装

 

此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字


 

再建立新版本python的软链接


 

这个时候输入
python
就会显示出python的新版本信息

Python 2.7.12 (default, Oct 13 2016, 03:17:14)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux2
Type “help”, “copyright”, “credits” or “license” for more information.

2.修改yum配置文件

之所以要保留旧版本,因为yum依赖Python2.6,改下yum的配置文件,指定旧的Python版本就可以了。

vim /usr/bin/yum,将第一行的#!/usr/bin/python修改成#!/usr/bin/python2.6.6

3.安装最新版本的pip


 

找到pip2.7的路径


 

上面的命令输出
/root/.cache/pip
这里省略一堆输出
/usr/local/python2.7.12/bin/pip
/usr/local/python2.7.12/bin/pip2
/usr/local/python2.7.12/bin/pip2.7 #就是这个
/usr/bin/pip
/usr/bin/pip2
/usr/bin/pip2.6

为其创建软链作为系统默认的启动版本(之前有旧版本的话就先删掉rm -rf /usr/bin/pip


 

看下pip的版本


 

pip 8.1.2 from /usr/local/python2.7.12/lib/python2.7/site-packages (python 2.7)

pip安装完毕,现在可以用它下载安装各种包了

我把上面的所有写成下面简单的脚本,一键就可以升级好。


 

https://ruter.github.io/2015/12/03/Update-python/

https://blog.phpgao.com/pip-easy_install-setuptool.html

Categories: 未分类

1 Comment

cbd oil for cats · 07/07/2020 at 12:02 PM

hello there and thank you for your info – I
have definitely picked up something new from right here.
I did however expertise several technical points using this web site,
since I experienced to reload the website lots of times previous to I could get it to load properly.
I had been wondering if your web host is OK? Not that I am complaining,
but slow loading instances times will sometimes affect your placement in google and can damage your high quality score if advertising and marketing with Adwords.
Well I am adding this RSS to my email and can look out for a lot
more of your respective exciting content. Make sure
you update this again very soon.

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *