• Python linux多版本共存以及虚拟环境管理(转摘)


    补充,后来我发现了 

    anaconda虚拟环境管理,从此Python版本不用愁,估计用conda来管理,应该更方便。

     

    Python linux多版本共存以及虚拟环境管理

    版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37947156/article/details/76549769

    此时需要在系统中安装多个Python,但又不能影响系统自带的Python,即需要实现Python的多版本共存。 pyenv 就是这样一个Python版本管理器。

    安装pyenv

    1.  
      $ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
      现在是这个地址: https://github.com/pyenv/pyenv.git
    2.  
      $ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
    3.  
      $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
    4.  
      $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc
    5.  
      $ exec $SHELL -l

    安装Python

    查看可安装的版本

    $ pyenv install --list

    该命令会列出可以用pyenv安装的Python版本,仅列举几个:

    1.  
      .7.8 # Python 2最新版本
    2.  
      .4.1 # Python 3最新版本
    3.  
      anaconda-4.0.0 # 支持Python 2.6和2.7
    4.  
      anaconda3-4.0.0 # 支持Python 3.3和3.4

    其中形如 x.x.x 这样的只有版本号的为Python官方版本,其他的形如 xxxxx-x.x.x 这种既有名称又有版本后的属于“衍生版”或发行版。

    安装Python的依赖包

    在安装Python时需要首先安装其依赖的其他软件包,已知的一些需要预先安装的库如下。

    在CentOS/RHEL/Fedora下:

    1.  
      sudo yum install readline readline-devel readline-static
    2.  
      sudo yum install openssl openssl-devel openssl-static
    3.  
      sudo yum install sqlite-devel
    4.  
      sudo yum install bzip2-devel bzip2-libs

    安装指定版本

    使用如下命令即可安装python 3.4.1:

    $ pyenv install 3.4.1 -v

    该命令会从github上下载python的源代码,并解压到/tmp目录下,然后在/tmp中执行编译工作。若依赖包没有安装,则会出现编译错误,需要在安装依赖包后重新执行该命令。

    如果网络不太好,用pyenv下载会比较慢,可以先执行该命令,然后到 ~/.pyenv/cache 目录下查看要下载的文件的文件名,然后自己到官方网站下载,并将文件放在 ~/.pyenv/cache 目录下(~/.pyenv/cache/ 一般需要手动创建)。pyenv会检查文件的完整性,若确认无误,则不会再重新下载。

    对于科研环境,更推荐安装专为科学计算准备的Anaconda发行版, pyenv install anaconda-4.0.0 安装Python 2.x版本, pyenv install anaconda3-4.0.0 安装Python 3.x版本;

    更新数据库

    安装完成之后需要对数据库进行更新:

    $ pyenv rehash

    查看当前已安装的python版本

    1.  
      $ pyenv versions
    2.  
      * system (set by /home/seisman/.pyenv/version)
    3.  
      .4.1

    其中的星号表示当前正在使用的是系统自带的python。

    设置全局的python版本

    1.  
      $ pyenv global 3.4.1
    2.  
      $ pyenv versions
    3.  
      system
    4.  
      * 3.4.1 (set by /home/seisman/.pyenv/version)

    当前全局的python版本已经变成了3.4.1。也可以使用 pyenv local 或 pyenv shell 临时改变python版本。

    确认python版本

    1.  
      $ python
    2.  
      Python 3.4.1 (default, Sep 10 2014, 17:10:18)
    3.  
      [GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
    4.  
      Type "help", "copyright", "credits" or "license" for more information.
    5.  
      >>>

    使用python

    • 输入 python 即可使用新版本的python;
    • 系统自带的脚本会以 /usr/bin/python 的方式直接调用老版本的python,因而不会对系统脚本产生影响;
    • 使用 pip 安装第三方模块时会安装到 ~/.pyenv/versions/3.4.1 下,不会和系统模块发生冲突。
    • 使用 pip 安装模块后,可能需要执行 pyenv rehash 更新数据库;
    • yenv version #显示当前使用的
    • Python pyenv which python #显示当前Python的安裝路径
    • pyenv global <version> #设置默认的Python版本
    • pyenv local <version> #在当前路径创建一个.python-version,以后进入这个目录自动切换为该版本
    • pyenv shell <version> #在当前shell的session中启用某个Python版本,优先级高于global,local

    参考https://github.com/yyuu/pyenv

    虚拟环境的搭建

    1.1.1介绍

    virtualenv用于创建独立的Python环境,多个Python相互独立,互不影响,它能够:
    1. 在没有权限的情况下安装新套件
    2. 不同应用可以使用不同的套件版本
    3. 套件升级不影响其他应用

    1.1.2安装

    sudo apt-get install python-virtualenv

    1.1.3 使用方法

    virtualenv [虚拟环境名称]

    如,创建**ENV**的虚拟环境

    virtualenv ENV

    默认情况下,虚拟环境会依赖系统环境中的site packages,就是说系统中已经安装好的第三方package也会安装在虚拟环境中,如果不想依赖这些package,那么可以加上参数 --no-site-packages建立虚拟环境

    virtualenv --no-site-packages [虚拟环境名称]

    启动虚拟环境

    cd ENV

    source ./bin/activate

    注意此时命令行会多一个(ENV),ENV为虚拟环境名称,接下来所有模块都只会安装到该目录中去。

    退出虚拟环境

    deactivate

    在虚拟环境安装Python套件

    Virtualenv 附带有pip安装工具,因此需要安装的套件可以直接运行:

    pip install [套件名称]

    如果没有启动虚拟环境,系统也安装了pip工具,那么套件将被安装在系统环境中,为了避免发生此事,可以在~/.bashrc文件中加上:

    export PIP_REQUIRE_VIRTUALENV=true

    或者让在执行pip的时候让系统自动开启虚拟环境:

    export PIP_RESPECT_VIRTUALENV=true

    1.2 Virtualenvwrapper

    1.2.1介绍

    Virtaulenvwrapper是virtualenv的扩展包,用于更方便管理虚拟环境,它可以做:
    1. 将所有虚拟环境整合在一个目录下
    2. 管理(新增,删除,复制)虚拟环境
    3. 切换虚拟环境
    4. ...

    1.2.2 安装

    sudo easy_install virtualenvwrapper

    此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。

    1.创建目录用来存放虚拟环境

    mkdir $HOME/.virtualenvs

    2.在~/.bashrc中添加行: export WORKON_HOME=$HOME/.virtualenvs

    3.在~/.bashrc中添加行:source /usr/local/bin/virtualenvwrapper.sh

    4.运行: source ~/.bashrc

    1.2.3 使用

    此时virtualenvwrapper就可以使用了。

    点击(此处)折叠或打开

    1. 列出虚拟环境列表

    2. workon 

    3. 

    4. 也可以使用

    5. lsvirtualenv 

    6. 

    7. 新建虚拟环境

    8. mkvirtualenv [虚拟环境名称] 

    9. 

    10. 启动/切换虚拟环境

    11. workon [虚拟环境名称]

    12.  

    13. 删除虚拟环境

    14. rmvirtualenv [虚拟环境名称] 

    15. 

    16. 离开虚拟环境

    17. deactivate

    pyenv 安装python 3.7.0时,报编译出错,需要:yum -y install libffi-devel。 别的依赖包基本都装了,所以添加这一个就行了。有的还需要:
    yum upgrade

    yum dist-upgrade
    yum install build-essential python-dev python-setuptools python-pip python-smbus
    yum install build-essential libncursesw5-dev libgdbm-dev libc6-dev
    yum install zlib1g-dev libsqlite3-dev tk-dev
    yum install libssl-dev openssl
    yum install libffi-dev
  • 相关阅读:
    018_STM32程序移植之_串口接收中文
    003_软件安装之_Visual Studio 2012
    001_C#我的第一个串口上位机软件
    017_STM32程序移植之_AS608指纹模块
    016_STM32程序移植之_舵机
    015_STM32程序移植之_NRF24L01模块
    014_STM32程序移植之_L298N电机驱动模块
    002_89C52_Proteus_DAC0832_输出50HZ,正弦波,三角波,矩形波,锯齿波
    001_89C52之_Proteus_ADC0809采集电压
    001_电子工程师招聘笔试题及详细解析
  • 原文地址:https://www.cnblogs.com/tangxiaosheng/p/9673449.html
Copyright © 2020-2023  润新知