zoukankan      html  css  js  c++  java
  • 使用virtualenv等python虚拟环境

    0 写在前面

    • 为什么需要python虚拟环境管理?

    解决python多版本冲突问题,比如有的工程需要用1.18.1版本的numpy,有的需要1.14.1版本的numpy,尤其是torch这样版本改动较大的模块。但是download别人代码时,系统同时安装多个版本容易发生错误,更要建立虚拟环境运行。

    • 虚拟环境方法review

    本部分主要参考知乎,大概有四种方法,见下文

    1 virtualenv

    1.1 安装

    pip3 install virtualenv

    1.2 创建环境

    首先cd到工程路径
    输入命令virtualenv venv就会在当前路径下生成venv文件夹,这就是虚拟环境所在位置,激活环境之后pip安装的包都会在‘’venv/site-packages‘’路径下
    如果要指定python版本,可用如下命令,前提是电脑有相应版本:

    virtualenv venv --python=python2.7
    

    1.3 激活环境

    根目录(工程目录)下,执行source venv/bin/activate激活环境,注意在WINDOWS中没有source命令,可直接执行venvinactivate激活。

    1.4 退出环境

    输入deactivate或者利用终端命令CRTL+D

    1.5 删除环境

    直接删除venv文件夹

    1.6 其他操作

    • 查看当前安装的库
      pip3 freeze

    • 创建 requirements.txt文件
      pip3 freeze > requirements.txt

    • 一键安装所有包
      pip3 install -r requirements.txt

    • 复制环境
      直接将venv文件夹复制到另一个工程目录下

    2 virtualenvwrapper

    本部分略,自查

    3 conda

    暂不使用conda,略

    4 pipenv

    4.0 写在前面

    介绍说是综合了 virtualenv , pip 和 pyenv 三者的功能,但实际上在国内并不好用,即便换国内源,安装包以及lock的时候的时候没有virtualenv快,但优点是只有Pipfile和Pipfile.lock 两个文件比较简便和小巧(virtualenv创建的环境大小上G而pipenv只有几百k),因此建议运行别人工程时用virtualenv,需要将自己工程推给别人的时候用pipenv。

    安装之前首先要将系统pip换成国内源,参考CSDN

    4.1 安装

    pip3 install pipenv

    4.2 创建环境

    cd到工程目录

    运行pipenv shell自动生成Pipfile并且进入虚拟环境,此时先把Pipfile中的url = "https://pypi.tuna.tsinghua.edu.cn/simple"换成国内清华源url = "https://pypi.tuna.tsinghua.edu.cn/simple

    然后pipenv lock生成lock文件

    4.3 使用环境

    使用pip命令时用pipenv替换,如pip3 install numpy改为pipenv install numpy,其他一样

    4.4 退出环境

    终端命令CRTL+D

    4.5 删除环境

    pipenv --rm

    4.6 其他操作

    • 查看当前安装的库或者依赖
      pipenv graph
    • 也可以生成requirements.txt文件
      pipenv lock -r --dev > requirements.txt
    • 也可以通过requirements.txt安装包
    • 复制环境
      将Pipfile和Pipfile.lock两个文件复制到新的工程路径下,进入环境后使用pipenv sync同步即可
      pipenv install -r requirements.txt
    • 更多细节可参考腾讯云
  • 相关阅读:
    PLSQL集合类型的使用总结
    户外品牌
    tensorflow学习资源
    sessionState详解
    easyui textbox 添加 onblur 失去焦点事件
    Android 只开启一个Activity实例
    SQL语句生成指定范围内随机数
    sql server 字符串转成日期格式
    调用WebServices超时
    adb install INSTALL_FAILED_ALREADY_EXISTS
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13281721.html
Copyright © 2011-2022 走看看