python项目环境搭建(pyenv+virtualenv)

参考博客

在centos上操作

1、先安装curl 和 git

# yum install curl git-core

2、接下来安装pyenv

# curl -L https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash

这个命令会把pyenv安装到当前用户的 ~/.pyenv目录下.

同时, 我们还需要把下面代码存到~/.bashrc文件中:

# vim ~/.bashrc


export PYENV_ROOT="${HOME}/.pyenv"


if [ -d "${PYENV_ROOT}" ] ; then


        export  PATH="${PYENV_ROOT}/bin:${PATH}"


        eval  "$(pyenv  init -)"


fi


这段代码的作用主要是指明pyenv的位置, 以便以后可以直接在命令行里面运行pyenv命令。 保存在~/.bashrc 文件中是为了每次用户登陆后自动生效。所以如果你是第一次运行命令并且没有注销的话, 这一段是不会生效的, 我们还需要运行下面的命令令其生效

# source ~/.bashrc

然后就可以直接在命令行里面敲pyenv了。

3. 安装某个版本的python

首先我们可以查看一下有哪些版本的python 可以安装

# pyenv install  --list

接下来, 我们安装 python3.5.3版本

#  pyenv  install  3.5.3

安装完毕后, 我们可以查看安装的情况

修改增加:

(如果安装过程出现类似如下错误:

checking for--enable-universalsdk... nochecking for --with-universal-archs... 32-bitchecking MACHDEP... linuxchecking for --without-gcc... nochecking for gcc... nochecking for cc... nochecking for cl.exe... no)

原因是 源码编译,提示缺少gcc cc cl.exe解决方案centos:   

 yum install -y gcc glibc

yum -y install gcc+ gcc-c++

ubuntu:apt-get update gccapt-get install g++ 

继续安装 若出现类似如下:

Installing Python-3.4.4...

WARNING: The Python bz2 extension was not compiled.Missing the bzip2 lib?

WARNING: The Python readline extension was not compiled.Missing the GNU readline lib?

ERROR: The Python ssl extension was not compiled. Missingthe OpenSSL lib?

Please consult to the Wiki page to fix the problem.https://github.com/yyuu/pyenv/wiki/Common-build-problems BUILD FAILED (CentOSLinux 7 using python-build 20160509-25-g4c654d7) Inspect or clean up theworking tree at /tmp/python-build.20160607105740.3166 Results logged to/tmp/python-build.20160607105740.3166.log Last 10 log lines: (cd/root/.pyenv/versions/3.4.4/share/man/man1; ln -s python3.4.1 python3.1) if test"xupgrade" != "xno" ; then \ case upgrade in \ upgrade)ensurepip="--upgrade" ;; \ install|*) ensurepip="" ;; \ esac;\ ./python -E -m ensurepip \ $ensurepip --root=/ ; \ fi Ignoring ensurepipfailure: pip 7.1.2 requires SSL/TLS 

则安装如下依赖:

yum install readline readline-devel readline-static -y

yum install openssl openssl-devel openssl-static -y

yum install sqlite-devel -y

yum install bzip2-devel bzip2-libs -y 

出现以上问题可参考(http://blog.sina.com.cn/s/blog_76923bd80102w9zw.html;http://blog.csdn.net/foryouslgme/article/details/51683654;https://www.jianshu.com/p/228cd025a368;)继续安装python安装完毕!

#  pyenv versions

输出结果如下:


* system (set by /home/tony/.pyenv/version)


3.5.3


4、切换版本

*指向的代表当前使用的版本,通过下面命令来进行版本切换

# pyenv global 3.5.3

如果要卸载某个版本的python, 可以这样:

# pyenv uninstall x.x.x

5. 利用virtualenv 创建虚拟python环境

现在我们已经安装了多个python版本,但是这还不够, 这时候我们可以使用virtualenv来创建虚拟python环境

virtualenv本是一个独立的工具,官网在这里:https://pypi.python.org/pypi/virtualenv

幸运的是,如果你是安装我们前面的方式安装pyenv的,那它已经帮我们以plugin的形式安装好了virtualenv, 我们只要使用就好了

首先我们创建一个3.5.3的虚拟环境

# pyenv virtualenv  3.5.3  env35

这条命令在本机上创建了一个名为env35的python虚拟环境,这个环境的真实目录位于:~/.pyenv/versions/

注意,命令中的 ‘3.5.3’ 必须是一个安装前面步骤已经安装好的python版本, 否则会出错。

然后我们可以继续通过 ‘pyenv versions’ 命令来查看当前的虚拟环境, 结果如下:


* system (set by /home/tony/.pyenv/version)2.7.1


3.5.3


env35


这里我们可以看到, 除了已经安装的python版本, 我们多出了一个env35的python虚拟环境

6. 切换和使用新的python虚拟环境

切换到新的虚拟环境的命令为

# pyenv activate env35

接下来我们的python环境就已经切换到3.5.3的虚拟环境了, 运行 ‘python’ 命令认证


(env35)tony@ubuntu:~$ python


Python3.5.3(r271:86832, May92014,01:07:17)


[GCC4.8.2] on linux3


Type"help","copyright","credits"or"license"formoreinformation.>>>


可以看到, python版本已经是3.5.3 而且是在虚拟环境之中 (env35)

下面基本上你就可以在这个虚拟环境里面为所欲为了 :) 再也不用担心系统路径被搞乱的问题了。

如果要切换回系统环境, 运行这个命令即可

# pyenv deactivate

那如果要删除这个虚拟环境呢? 答案简单而且粗暴,只要直接删除它所在的目录就好:

# rm -rf  ~/.pyenv/versions/env35/

至此环境搭建大功告成!

7、使用pip安装项目相关依赖库

上面安装的Python版本自带pip安装工具,,如下项目使用虚拟环境env35,项目目录如下

先启动虚拟环境,然后切换到项目目录下,进行pip安装


#  pyenv activate env35


# cd 项目目录


# pip install -r requirements.txt


8、启动项目

安装完各个依赖库后,进行如下命令启动该项目

python manage.py runserver -h 0.0.0.0 -p 8080  -threaded

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,236评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,867评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,715评论 0 340
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,899评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,895评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,733评论 1 283
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,085评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,722评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,025评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,696评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,816评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,447评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,057评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,254评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,204评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,561评论 2 343

推荐阅读更多精彩内容