问题描述

环境: CentOS6.5

想在此环境下使用python3进行开发,但CentOS6.5默认的python环境是2.6.6版本。 
之前的做法是直接从源码安装python3,替换掉现有的开发环境,但在随后使用过程中发现系统很多脚本依赖python2.6,直接替换会导致很多软件不正常。 
今天发现有朋友使用virtualenv搭建python3开发环境,这里记录下,也方便我以后查阅。

安装python3

安装脚本如下:

wget https://www.python.org/ftp/python/3.4.3/Python-3.4.3.tgz
tar zxvf Python-3.4..tgz
cd Python-3.4.
./configure --enable-shared --prefix=/usr/local
make && make altinstall

运行以上命令后,你可以在目录/usr/local/bin/python3.4 看到新编译的环境。

注意: 这里我们使用的是make altinstall,如果使用make install,你将会看到在系统中有两个不同版本的Python在/usr/bin/目录中。这将会导致很多问题,而且不好处理。

如果提示找不到so文件,可以添加以下变量:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

安装其它版本的python可从官网下载: https://www.python.org/

搭建python3开发环境

1、安装virtualenv,可以通过pip进行安装,命令如下:

pip install virtualenv

如果没有安装pip,可以通过以下命令安装:

yum install python-pip

2、创建虚拟环境:

virtualenv -p /usr/local/bin/python3. py34env

执行上述命令后,会在当前目录创建py34env文件夹,该文件夹即为我们创建的虚拟环境。

3、激活虚拟环境:

source py34env/bin/activate

3.1、在虚拟环境中安装ipython

pip install ipython

如果安装过程中提示如下错误:

Can't connect to HTTPS URL because the SSL module is not available. - skipping 

请安装以下库:

yum install openssl-devel 

然后重新编译安装Python:

./configure --prefix=/usr/local &&  make && make altinstall  

3.2、在虚拟环境中启动ipython:

ipython

4、退出虚拟环境

deactivate                             

其它

CentOS 6下使用 python3.6的pyenv 问题

1、在操作系统中安装zlib和bz2相关库

yum -y install bzip2 bzip2-devel ncurses openssl openssl-devel openssl-static xz lzma xz-devel sqlite sqlite-devel gdbm gdbm-devel tk tk-devel libffi-devel

2、编译

export CFLAGS="-I/usr/include"
export LDFLAGS="-L/usr/lib64"
export LD_LIBRARY_PATH=/usr/lib64
make distclean
./configure --enable-optimozations --enable-shared --prefix=/usr/local
make -j
sudo make altinstall

3、使用

/usr/local/python/bin/pyvenv py36env
source ~/env/py36env/bin/activate

本文github地址:

https://github.com/mike-zhang/mikeBlogEssays/blob/master/2015/20150607_使用virtualenv搭建python3开发环境.md

欢迎补充

最新文章

  1. mysql
  2. Java线上应用故障排查之二:高内存占用
  3. Tomcat启动过程中找不到JAVA_HOME解决方法
  4. EF容器---代理类对象
  5. vim环境设置和自动对齐
  6. MongoDB入门三步曲2--基本操作(续)--聚合、索引、游标及mapReduce
  7. cocos2d-x-2.2的SimpleAudioEngine::sharedEngine()->playEffect()计划中断bug
  8. OrchardNoCMS
  9. VS中为类,函数代码自动添加版权注释信息
  10. 第十九节,基本数据类型,集合set
  11. angular中控制器之间的通讯方式
  12. 洛谷P4057
  13. Pycharm 远程调试
  14. MyEclipse项目中,让修改后的Servlet文件立即运行生效方法
  15. pycaffe训练的完整组件示例
  16. struts2 action中字符串转json对象出错 java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
  17. redux源码解析(深度解析redux+异步demo)
  18. 设计模式《JAVA与模式》之访问者模式
  19. JavaScript Boolean( new Boolean(false) ) 其实是true
  20. ethjs-1-了解

热门文章

  1. Html5 快速排序演示
  2. Linux 命令基础合集
  3. JavaScript中的apply,call与this的纠缠
  4. HTTP权威指南-基础知识
  5. ASP.NET MVC5+EF6+EasyUI 后台管理系统(36)-文章发布系统③-kindeditor使用
  6. Android指纹识别深入浅出分析到实战(6.0以下系统适配方案)
  7. FFmpeg学习4:音频格式转换
  8. C#委托的一次"甜蜜"接触
  9. C#开发微信门户及应用(23)-微信小店商品管理接口的封装和测试
  10. Amazon Interview | Set 27