当前位置: 代码迷 >> 综合 >> 第四天 Pyenv,virtualenv,conda等python环境管理
  详细解决方案

第四天 Pyenv,virtualenv,conda等python环境管理

热度:0   发布时间:2024-02-24 21:30:19.0

一. 关于四种python环境管理的阐述

1 .pyenv有两大优点,一是可以任意切换全局的python版本,二是可以使用pyenv-virtualenv创建管理环境。

2.virtualenv是可以单独管理python环境。但仅仅只能管理环境,而pyenv里集成了pyenv-virtualenv的环境管理

3.conda类似于virtualenv,集成管理python环境。与virtualenv一样可以单独安装。但是也可以使用pyenv 安装,好处是

pyenv 把 conda变成了自己的环境,激活conda环境又可以再从conda里添加环境,变成了环境里继续添加环境的一个现象。就像下面一样。

注:virtualenv与pyenv-virtualenv不是一个包。各自安装,安装步骤后续给出。

hang@hang-ThinkPad-T450s:~$ pyenv versions
* system (set by /home/hang/.python-version)3.6.23.6.2/envs/env3623.7.5anaconda3-2020.07anaconda3-2020.07/envs/objectenv362
hang@hang-ThinkPad-T450s:~$ pyenv local anaconda3-2020.07
(anaconda3-2020.07) hang@hang-ThinkPad-T450s:~$ conda env list
# conda environments:
#
base                  *  /home/hang/.pyenv/versions/anaconda3-2020.07
object                   /home/hang/.pyenv/versions/anaconda3-2020.07/envs/object(anaconda3-2020.07) hang@hang-ThinkPad-T450s:~$ conda activate object
(object) (anaconda3-2020.07) hang@hang-ThinkPad-T450s:~$ 
(object) (anaconda3-2020.07) hang@hang-ThinkPad-T450s:~$ conda deactivate
(anaconda3-2020.07) hang@hang-ThinkPad-T450s:~$ pyenv local system
hang@hang-ThinkPad-T450s:~$ 

二:pyenv的安装步骤

首先给出pyenv的安装步骤:

安装之前需要安装相关的依赖环境:

apt-get -y install git gcc make patch zlib1g.dev libgdbm-dev libssl-dev libsqlite3-dev libbz2-dev libreadline-dev

1. 首先从github上下载pyenv:下载的目录默认是home/hang/.pyenv下,hang是 ~目录。复制下面的代码即可。

git clone https://github.com/pyenv/pyenv.git ~/.pyenv

2.下载后,需要配置环境变量。

两种方式配置环境变量:(任选其一即可)

    (1)使用命令行直接写入:

  echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profileecho 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
# 添加pyenv到初始化echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

  (2)在~目录下,使用gedit .bash_profile打开文件,复制下面三行,保存即可。

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

完事之后,重启一下就可以了:

source ~/.bash_profile

 (3)配置完之后,需要在.bashrc文件中写入四行:(注意第一行的路径不要写错了)

hang@hang-ThinkPad-T450s:~$ gedit .bashrc
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

再次保存重启。

(4)重启之后如果报virtualenv没有的信息,说明我们安装的pyenv没有pyenv-virtualenv,则需要再单独下载pyenv-virtualenv。

    有两种方式安装,第一种是使用brew安装:(但是很多人还需要再装brew,很麻烦)

brew install pyenv-virtualenv

   因此我推荐从github上下载的方式,下载到pyenv路径就可以直接使用。安装后重启~/.bashrc看还有没有报错。

git clone git://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv
source  ~/.bashrc 

至此,安装结束,使用pyenv versions命令,查看所有python版本及其环境,注意系统自带的版本只会

显示System。后面会给出其他的相关操作。

三:virtualenv的安装步骤

如果不想安装pyenv管理全局环境,只想简单的搭个环境,可以只使用virtualenv操作。

1.  在系统环境下,首先需要安装下面两个包,可以使用镜像安装,会比较快。

sudo pip install virtualenv
sudo pip install virtualenvwrapper

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

sudo mkdir -p $WORKON_HOME

3.然后需要添加virtualenvenvwrapper的环境变量,    gedit   ~/.bashrc

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc
  • mkvirtualenv wxhpython01:创建运行环境wxhpython01
  • workon wxhpython01: 工作在 zqxt 环境 或 从其它环境切换到 wxhpython01环境
  • deactivate: 退出终端环境
  • rmvirtualenv ENV:删除运行环境ENV
  • mkproject mic:创建mic项目和运行环境mic
  • mktmpenv:创建临时运行环境
  • lsvirtualenv: 列出可用的运行环境
  • lssitepackages: 列出当前环境安装了的包
  • 所有的虚拟环境,都位于~/.virtualenvs目录下

可以在当前环境下重新装python版本。

四:Anaconda的安装

1.Anaconda有两种安装方式,一种是直接在系统中安装,安装后需要配置环境变量,同时需要更改不进入base。但是系统会默认base的python版本,导致出现很多问题,我还没解决,所以采用第二种安装方式。

2.第二种安装方式是使用pyenv安装,作为pyenv的环境。使用下面语句可以看到pyenv的可安装版本,其中包含anaconda

pyenv install -l

直接使用pyenv安装会非常慢。因为pyenv安装包会缓存到.pyenv/cache/目录下,我们采用 wget下载。

首先使用pyenv install Anaconda3-2020.07下载会看到下载路径,将下载路径复制并使用下面的命令下载。

wget http://repo.continuum.io/archive/Anaconda3-2020.07-Linux-86_64.sh -P ~/.pyenv/cache/

下载完之后,使用pyenv install Anaconda3-2020.07 可以直接安装了。

五:基本命令使用

1. pyenv 基本命令使用

pyenv环境的激活与关闭:

hang@hang-ThinkPad-T450s:~$ pyenv virtualenvs3.6.2/envs/env362 (created from /home/hang/.pyenv/versions/3.6.2)anaconda3-2020.07 (created from /home/hang/.pyenv/versions/anaconda3-2020.07)anaconda3-2020.07/envs/object (created from /home/hang/.pyenv/versions/anaconda3-2020.07)env362 (created from /home/hang/.pyenv/versions/3.6.2)
hang@hang-ThinkPad-T450s:~$ pyenv activate env362
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(env362) hang@hang-ThinkPad-T450s:~$ pyenv deactivate
hang@hang-ThinkPad-T450s:~$ pyenv activate anaconda3-2020.07
pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.
(anaconda3-2020.07) hang@hang-ThinkPad-T450s:~$ 

pyenv local <version> 命令可以为某个目录指定所使用的 python 版本。激活环境还是使用activate吧,靠谱点。

2. conda与pyenv类似,不多阐述。

3. 可以同时使用pyenv以及外部的virtualenv,因为两者环境装的地方是不一样的。pyenv只能检测到自己文件夹里的环境,是检测不到外部virtualenv的环境的。所以pyenv-virtualenv和virtualenv是可以共存使用的。

4. 使用外部的conda还没试过。