Linux配置虚拟环境

2020-03-29
2 min read

安装Python

版本在这个[网址](Index of /ftp/python/)里面进行选择,例如选择3.7.0版本,可通过以下操作实现:

wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
sudo tar zxvf Python-3.7.0.tgz -C /usr/local/
cd /usr/local/Python-3.7.0
sudo ./configure --prefix=/usr/local/python3.7
sudo make
sudo make install

可以自定义安装路径和该版本Python的前缀,如果是多版本Python,注意区分路径和前缀。

安装虚拟环境

输入命令:

sudo pip install virtualenv
sudo pip install virtualenvwrapper
  • virtualenv是虚拟环境的软件工具,可以在系统中建立多个互不干扰的虚拟环境
  • virtualenvwrappervirtualenv进行封装,更加方便管理虚拟环境

virtualenv的使用

  • 新建虚拟环境

    mkdir Myproject
    cd Myproject
    virtualenv --python=python3 venv
    virtualenv --no-site-packages --python=python3.7 venv
    
    • --python=python3指定python环境
    • --no-site-packages指定获取独立第三方包的环境
    • venv为虚拟环境名称
  • 激活虚拟环境

    source venv/bin/activate
    
  • 退出虚拟环境

    deactivate
    

配置一致的开发环境

  • 导出当前python环境的包

    pip freeze > requirements.txt
    

    当前环境所有依赖的包及其版本都会收集到requiements.txt

  • 在新环境中安装项目所需的包

    pip install -r requirements.txt
    

使用virtualenvwrapper管理虚拟环境

设置Linux环境变量

  • virtualenvwrapper添加到当前的环境变量中,先打开bashrc文件(针对当前用户)

    sudo vim ~/.bashrc
    
  • 写入以下代码

    export WORKON_HOME=~/Envs #设置virtualenv的统一管理目录
    export VIRTUALENVWRAPPER_VIRTUALENV_ARGS='--no-site-packages'   
    export VIRTUALENVWRAPPER_PYTHON=/home/admin/anaconda3/bin/python3 #指定python解释器
    
  • 执行virtualenvwrapper安装脚本

    source /home/admin/anaconda3/bin/virtualenvwrapper.sh
    
  • 激活设置

    source ~/.bashrc
    

virtualenvwrapper的使用

virtualenvwrapper能够将所有的虚拟环境目录集中起来,能够对所有的虚拟环境进行统一管理,不需要自己去找对应的虚拟环境目录去激活。

  • 创建虚拟环境

    mkvirtualenv [-a project_path] [-i package] [-r requirements_file] [virtualenv options] ENVNAME
    mkvirtualenv dataadmin
    
  • 激活虚拟环境

    worken dataadmin
    
  • 退出当前虚拟环境

    deactivate
    

    也可以直接切换到另外的环境

    worken anothervenv
    
  • 删除虚拟环境(需要先退出)

    rmvirtualenv dataadmin
    
  • 所有虚拟环境列表

    lsvirtualenv
    
  • 导航到当前环境的目录

    cdvirtualenv
    
  • 导航到当前环境的site-packages目录

    cdsitepackages
    
  • site-packages列表

    lssitepackages
    

更多操作见官网