• 基于pyenv和virtualenv搭建python多版本虚拟环境


    在这里插入图片描述

    pyenv简介

    由于Python的依赖是基于site的,这对于生产环境来说,是一种简单而正确的方式,然而,对于我们的开发环境,基于这样的管理方式,带来了可怕的第三方依赖管理的难题,virtualenv适时出现了,拯救了广大被依赖问题困扰的Python程序员。virtualenv无疑是成功的,它为每个项目创建一个虚拟环境,使得项目的依赖全部在一个虚拟且封闭的环境中,互不干扰。然而,这就够了吗?想象下面一种场景:你的新项目在Python 3.3下面开发,而你维护的旧项目,却工作在Python 2.7之上,为了完成工作,你不得不安装两个Python解释器,并为每个解释器配置virtualenv,在你调试执行的时候,不得不适用冗长的全路径调用解释器,或者不断地修改你的环境变量。天哪,你再次陷入与你的工作无关的,烦人的事情中。pyenv的出现,就是来拯救你的。pyenv是一个Python多版本管理工具,他设计精巧,通过巧妙的方法,可以使多版本的Python共存在一个操作系统能,简单地实现切换从而使用不同版本的Python。pyenv支持插件,通过插件,可以和virtualenv完美结合,实现多版本,多环境的控制,使得你的每个项目,仿佛运行在一个完全隔离的环境中一样。

    安装pyenv

    使用pyenv-installer安装pyenv很简单,只需要在终端执行:

    curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
    
    • 1

    打开~/.bashrc,输入一下语句添加环境变量配置

    export PYENV_ROOT="$HOME/.pyenv"
    export PATH="$PYENV_ROOT/bin:$PATH"
    eval "$(pyenv init -)"
    
    • 1
    • 2
    • 3

    使配置生效

    source ~/.bashrc
    exec $SHELL -l
    
    • 1
    • 2

    查看pyenv安装的python版本

    pyenv versions
    
    • 1

    安装相关依赖包

    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
    
    • 1
    • 2
    • 3
    • 4

    安装多版本python

    以安装python3.4.5为例

    pyenv install 3.4.5
    
    • 1

    系统会从python官网下载安装对应的python版本

    但是因为众所周知的原因,直接从python官网下载源会比较慢,这里有两种解决方法:

    1、从官网下载对应的版本压缩包到,以FTP方式上传到~/.pyenv/cache/目录,没有cache目录就自行创建。以安装python3.4.5为例,从官网下载Python-3.4.5.tgz文件后使用FileZilla客户端上传后,修改文件名称为Python-3.4.5.tar.gz。注意,这一步非常重要。然后按上步骤安装。

    mv Python-3.4.5.tgz Python-3.4.5.tar.gz
    pyenv install 3.4.5 -v
    
    • 1
    • 2

    2、使用国内镜像的pyenv源安装,比如github上有老司机在七牛上搭建的:http://pyenv.qiniudn.com/pythons/,执行以下命令:

    export PYTHON_BUILD_MIRROR_URL="http://yoursite.example.com/pythons"
    pyenv install 3.4.5
    
    • 1
    • 2

    pyenv与virtualenv

    pyenv通过插件,可以很好的和virtualenv一起工作,通过整合virtualenv,pyenv实现了真正意义上的环境隔离,每个项目都相当于使用一个单独的解释器。通过pyenv-installer安装的pyenv,已经安装好virtualenv插件了。相关命令如下:

    pyenv virtualenv [-f|--force] [-u|--upgrade] [VIRTUALENV_OPTIONS] <version> <virtualenv-name>
    
    • 1

    选项-f表示强制的,也就是如果已经存在这个虚拟环境,那么将会覆盖这个虚拟环境 选项-u表示upgrade,用于修改已经存在的虚拟环境的Python版本 VIRTUALENV_OPTIONS 是传递给virtualenv的选项,可以通过virtualenv的帮助获取选项的含义 version 表示Python版本 virtualenv-name 是我们给虚拟环境指定的名字 例如:

    pyenv virtualenv 3.4.5 my_project  #创建一个Python版本为3.4.5的环境,环境叫做my_project
    
    pyenv activate my_project  #激活my_project这个环境,此时Python版本自动变为3.4.5,且是独立环境
    
    pyenv deactivate  #离开已经激活的环境
    
    • 1
    • 2
    • 3
    • 4
    • 5

    最后

    分享一份Python的学习资料,但由于篇幅有限,完整文档可以扫码免费领取!!!

    1)Python所有方向的学习路线(新版)

    总结的Python爬虫和数据分析等各个方向应该学习的技术栈。

    在这里插入图片描述

    比如说爬虫这一块,很多人以为学了xpath和PyQuery等几个解析库之后就精通的python爬虫,其实路还有很长,比如说移动端爬虫和JS逆向等等。

    img

    (2)Python学习视频

    包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然达不到大佬的程度,但是精通python是没有问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

    在这里插入图片描述

    (3)100多个练手项目

    我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

    在这里插入图片描述

  • 相关阅读:
    刷完HashMap源码,我们一起进大厂
    XCTF-reverse-signin
    基础会计学问答题
    python基础之函数模块的导入
    CREATE SECURITY LABEL COMPONENT 语句2
    剑指 Offer 25. 合并两个排序的链表
    ss(socket statistics)和netstat获取网络连接的实现
    基于教与学优化的BP神经网络(分类应用) - 附代码
    adb shell settings高级指令设置系统属性所有的指令汇总+注释
    0046【Edabit ★☆☆☆☆☆】【长方形面积】Area of a Rectangle
  • 原文地址:https://blog.csdn.net/javasdn/article/details/134055123