pyenv等环境配置

以下操作环境均为Ubuntu !!!其他环境不一定如此,比如文中的sqlite3等报错在centos似乎就不会报错


一、pyenv (python 多版本管理器)


(1)pyenv安装

root@ubuntu64:cd /root  #进入root目录
root@ubuntu64:~# git clone git://github.com/yyuu/pyenv.git .pyenv  #源码安装pyenv
root@ubuntu64:/etc/profile.d# touch pyenv.sh  #穿在/etc/profile.d/文件夹下创建pyenv.sh文件,便于管理环境变量
root@ubuntu64:/etc/profile.d# vi pyenv.sh #编辑shell文件,把环境变量添加进去

	export PYENV_ROOT="$HOME/.pyenv"  #$HOME意味着当前用户的根目录,即~
	export PATH="$PYENV_ROOT/bin:$PATH"  #注意一定要加上当前用户(这里是root)自带的环境变量$PATH
	eval "$(pyenv init -)"    

root@ubuntu64:/etc/profile.d# source /etc/profile.d/pyenv.sh #用source是环境变量立马生效

(2)pyenv教程

pyenv version #查看当前python版本
pyenv verions  #查看pyenv下可以切换的python版本
pyenv install 3.5.2  #安装python3.5.2 版本,若安装别的版本:pyenv install 2.7.1 等
pyenv uninstall  #卸载对应pythonv版本
pyenv which python    #显示当前python的安裝路径 
pyenv  install --list    #能够安装的所有python版本

PS:
  其中对于第一次使用pyenv install 的时候与ubuntu会报错(SSL/TLS未安装),如下图:
这里写图片描述
解决办法:

sudo apt-get install libssl-dev  #安装对应包即可

二、virtualenv (虚拟环境管理器,virtualenv实际上是一个python包)


(1)virtualenv 安装

root@ubuntu64:~# sudo apt-get install python3-pip#安装pip3,pip 安装不了virtualenv
root@ubuntu64:~# pip3 install virtualenv  #安装virtualenv

(2)virtualenv 教程
 
以我要创建python3.5.2和python2.7的虚拟环境为例子:

#1 按照此时环境默认的python版本创建

root@ubuntu64:~# pyenv global 3.5.2  #设置pyenv 安装的3.5.2为系统默认版本
root@ubuntu64:~# virtualenv env352   #创建名为env352的虚拟python环境,但是要提醒的是virtualenv会按照此时系统默认的python环境和路径来对应env352环境,所以既然我们要创建虚拟环境,就是希望单独来使用python各种版本于系统自带的分开,所以在执行这一步之前我会pyenv global 3.5.2一下。
root@ubuntu64:~# ls  #查看目录下是否有env352这个目录
root@ubuntu64:~/env352# source bin/activate   #启动352的环境,此时所有关于python的操作都是基于pyenv gloabl 3.5.2的python3.5.2下来实现的
(env352) root@ubuntu64:~/env352# deactivate   #退出环境

#2 不按照系统版本创建,指定一个python的路径来创建

root@ubuntu64:~# virtualenv -p /usr/bin/python env27  #指定某个具体的python版本创建名为env27的环境

**三、virtualenvwrapper**

virtualenvwrapper是virtualenv的扩展工具,可以更方便的创建、删除、复制、切换不同的虚拟环境。

(1)virtualenvwrapper 安装

root@ubuntu64:~#source env276/bin/activite #先进入随便一个由virtualenv创建的虚拟环境
(env276)root@ubuntu64:~# pip3 install virtualenvwrapper  # 安装
(env276)root@ubuntu64:~# mkdir workspaces #创建一个工作目录用于virtualenvwrapper的工作目录,用其安装的python环境在都在这个工作目录里面
(env276)root@ubuntu64:~# which is virtualenvwrapper.sh   #记住这个路径
      /root/.pyenv/shims/virtualenvwrapper.sh    
(env276)root@ubuntu64:~# export WORKON_HOME="~/workspaces"  #解释virtualenvwrapper的工作目录
(env276)root@ubuntu64:~#source /root/.pyenv/shims/virtualenvwrapper.sh #激活virtualenvwrapper.sh
(env276)root@ubuntu64:~#deactivite #退出env276环境
root@ubuntu64:vi /~.bashrc  #把激活写入环境变量,不用每次激活了
	export WORKON_HOME="~/workspaces" 
	source /root/.pyenv/shims/virtualenvwrapper.sh

#这时候就可以用virtualenvwrapper的教程中的命令了,而且此时的环境工作目录会在刚才的workspace下,比如你mkvirtualenv env342,这时env342就在workspace目录下。


(2)virtualenvwrapper 教程

mkvirtualenv spider  # 创建环境
workon spider   #进入环境,不用soure bin/activite一样麻烦了
deactivate   #退出环境
rmvirtualenv spider  #删除环境

PS:
  1、我发现好像必须要进virtualenv 创建的虚拟环境(比如上面的的env276)下安装和激活才能成功,也就是说要在env276下pip install virtualenvwrapper 和source /…/virtualenvwrapper.sh,不然会报错。反正我控制变量试了好多次,必须在一个virtualenv的环境下(比如上面的的env276)安装和激活才能成功完成virtualenvwrapper的配置。也就是验证了那句话,不许先有virtualenv才能再安装virtualenvwrapper!!!!
  2、mkvirtualenv spider的时候,但是要提醒的是virtualenvwrapper会按照系统默认的python环境和路径来对应spider环境,所以既然我们要创建虚拟环境,就是希望单独来使用python各种版本于系统自带的分开,所以在执行这一步之前我会pyenv global 3.5.2一下,即使用了由pyenv下载的python版本来创建该虚拟环境,与系统的版本隔离开来。


四、 ubuntu让我很难受


pyenv下的python版本:sqlite3报错和mysql-python安装的报错
  本以为安装好pyenv和virtualenv后就完事大吉了,但是现在出现了两个问题。
  
1、在pyenv安装的python下运行django项目会报错、

ImportError: No module named '_sqlite3'

我尝试了很多中方法解决,毕竟linux水平一般,暂时为解决,放着先,但是我看别人写的明明也是ubuntu环境居然能成功我实在想不通
2、放弃自带的sqlite3,安装配置mysql的时候报错

panda@ubuntu64:~$ sudo apt-get install mysql-server 
panda@ubuntu64:~$ sudo apt-get install mysql-client 
(env352)panda@ubuntu64:~$ pip3 install mysql-python   #这一步报错
	 ImportError: No module named 'ConfigParser'

在/env352/lib/python3.5/site-packages/backports有一个小写的configparser的py包,按照网上的说法改名字为ConfigParser就可以了,但是我mv configparser ConfigParser后依然报错,所以我懒得用pyenv的python了,我打算用自带的python或者下载去官网下载完整版的python再来virtualenv环境(virtualenv -p /python指定版本/ env_name)
 
3、 上面的报错全部是基于pyenv下载的python才发生的,于是我决定按照(二)中的方法2,指定具体的非pyenv下载的python版本

#如此以来我解决不了pyenv的python问题,pyenv于没用了,可以全部删除重新开始,也就是说此时我什么都没有安装
panda@ubuntu64:~#sudo apt-get install virtualenv  #下载virtualenv
#指定/usr/bin/python3.5为版本创建名字为env352的环境
panda@ubuntu64:~$ virtualenv -p /usr/bin/python3.5  env352 
panda@ubuntu64:~$source env352/bin/activate  #进入环境
(env352) panda@ubuntu64:pip install django  #安装django
(env352) panda@ubuntu64:~/env352$ mkdir project_dir #建立一个工程目录
(env352) panda@ubuntu64:~/env352$ cd project_dir/  # 进入目录
(env352) panda@ubuntu64:~/env352/project_dir$ django-admin.py startproject mysite  #创建项目
(env352) panda@ubuntu64:~/env352/project_dir/mysite$ python manage.py runserver  #运行项目(成功如下图)

终端:

这里写图片描述

浏览器:

这里写图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值