跳至主要內容

虚拟环境

Mr.Liu大约 8 分钟

虚拟环境

虚拟环境之pipenv

安装pipenv

pip install pipenv

使用pipenv创建虚拟环境

# 尽量在一个项目目录下创建虚拟环境
cd youfolder
pipenv install

激活虚拟环境

# 在创建虚拟环境的位置运行命令
pipenv shell

修改虚拟环境的镜像源,打开虚拟环境下的配置文件: Pipfile,修改url为国内镜像源

    [[source]
    name = "pypi"
    url = "https://pypi.org/simple"
    verify_ssl = true

    [dev-packages]

    [packages]

    [requires]
    python_version = "3.7"

在虚拟环境安装第三方包

pipenv install django

使用pipenv卸载第三方模块

pipev uninstall django

查看依赖

pipenv graph

将安装的模块打包到一个文件内

pip freeze > requirements.txt

将一个文件内的第三方扩展安装到虚拟环境中

pip install -r requirements.txt

退出虚拟环境

exit

删除虚拟环境

pipenv --rm

不激活虚拟环境,直接运行命令

pipenv run django-amdin start project djangodemo

虚拟环境之virtualenv

安装virtualenv

pip install virtualenv # 虚拟环境
pip install virtualenvwrappern # mac/linux系统
pip install virtualenvwrapper-win # windows系统

创建虚拟环境

mkvirtualenv django

激活虚拟环境

# 在创建虚拟环境后会默认激活
workon django  # 激活django虚拟环境
workon  # 查看所有虚拟环境

修改虚拟环境的镜像源

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple/ # 终端使用命令设置pip镜像
pip install pip -U  # 升级pip包管理工具

在虚拟环境安装第三方包

pip install django  # 先激活虚拟环境

卸载第三方模块

pip uninstall django # 先激活虚拟环境

将安装的模块打包到一个文件内

pip freeze > requirements.txt

将一个文件内的第三方扩展安装到虚拟环境中

pip install -r requirements.txt

退出虚拟环境

exit

删除虚拟环境

rmvirtualenv django

虚拟环境之conda

Anaconda简介

Anaconda是一个方便的python包管理和环境管理软件,一般用来配置不同的项目环境。

Anaconda通过管理工具包、开发环境、Python版本,大大简化了你的工作流程。不仅可以方便地安装、更新、卸载工具包,而且安装时能自动安装相应的依赖包,同时还能使用不同的虚拟环境隔离不同要求的项目。

Anaconda 是一个用于科学计算的 Python 发行版,支持 Linux, Mac, Windows, 包含了众多流行的科学计算、数据分析的 Python 包。

Anaconda 安装包可以到 https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/open in new window 下载。

Miniconda 镜像使用帮助

Anaconda安装

Windows安装

点击安装文件Anaconda3-2019.07-Windows-x86_64.exe,选择安装路径,如D:\python\Anaconda,然后一直next即可。

配置环境变量: 将安装的根路径,如D:\python\Anacondascripts文件夹路径D:\python\Anaconda\scripts添加到电脑环境变量之中

Linux/Mac安装

将安装文件Anaconda3-2019.07-Linux-x86_64.sh移动到用户家目录

在用户家目录,打开终端,执行./Anaconda3-2019.07-Linux-x86_64.sh,然后输入yes,一路回车即可。

配置环境变量:

打开.bashrc 文件,在终端执行如下命令:

vi ~/.bashrc

输入G,跳转到文件末尾,在文件最后一行新增环境变量

export PATH=~/anaconda3/bin:$PATH

修改完成,先按esc键进入命令行模式,然后按shift+:进入末行模式,输入wq,保存退出

在终端执行如下命令,使其立即生效

source ~/.bashrc

注意:在Mac中,修改文件.bash_profile,其余和Linux操作一样

修改Anaconda镜像源

Anaconda默认访问国外服务器,网速较慢,故需要修改默认镜像

TUNA 还提供了 Anaconda 仓库与第三方源(conda-forge、msys2、pytorch等,查看完整列表)的镜像,各系统都可以通过修改用户目录下的 .condarc 文件:

channels:
  - defaults
show_channel_urls: true
channel_alias: https://mirrors.tuna.tsinghua.edu.cn/anaconda
default_channels:
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/r
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/pro
  - https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/msys2
custom_channels:
  conda-forge: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  msys2: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  bioconda: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  menpo: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  pytorch: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud
  simpleitk: https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud

即可添加 Anaconda Python 免费仓库。Windows 用户无法直接创建名为 .condarc 的文件,可先执行 conda config --set show_channel_urls yes 生成该文件之后再修改。

Anconda基本使用

管理环境

检查conda版本
conda --version                                                                                                                     
升级当前版本conda
conda update conda
管理(虚拟)环境
# 创建一个名为python37的环境,指定Python版本是3.7(不用管是3.7.x,conda会为我们自动寻找3.7.x中的最新版本)
conda create --name python37 python=3.7

# 安装好后,使用activate激活某个环境
activate python37 # for Windows
source activate python37 # for Linux & Mac
# 激活后,会发现terminal输入的地方多了python37的字样

# 如果想返回默认的python环境,运行
deactivate python37 # for Windows
source deactivate python37 # for Linux & Mac

# 删除一个已有的环境
conda remove --name python37 --all

# 另外,我们可以使用conda命令替换source命令用来激活和关闭环境
conda activate python37
conda deactivate

# 取消每次打开终端,默认激活bash环境
conda config --set auto_activate_base false

# 重新激活每次打开终端,默认进入base环境
conda config --set auto_activate_base true

新的开发环境会被默认安装在你conda目录下的envs文件目录下。

如果我们没有指定安装python的版本,conda会安装我们最初安装conda时所装的那个版本的python。

列出所有环境
conda info -e
conda info –-envs

注意:conda会对当前活动的环境追加星号标记。

macdeMacBook-Pro:~ mac$ conda info -e
# conda environments:
#
base                  *  /Users/mac/anaconda3
myenv                    /Users/mac/anaconda3/envs/myenv
py3                      /Users/mac/anaconda3/envs/py3
复制一个环境

通过克隆来复制一个环境。这儿将通过克隆py3来创建一个称为py32的副本。

conda create -n py32 --clone py3

通过

conda info –-envs

来检查环境。

重命名env

conda是没有重命名环境的功能的, 要实现这个基本需求, 只能通过愚蠢的克隆-删除的过程。

切记不要直接mv移动环境的文件夹来重命名, 会导致一系列无法想象的错误的发生!

conda create --name newname --clone oldname      # 克隆环境
conda remove --name oldname --all      # 彻底删除旧环境
分享环境

如果你想把你当前的环境配置与别人分享,这样ta可以快速建立一个与你一模一样的环境(同一个版本的python及各种包)来共同开发/进行新的实验。

一个分享环境的快速方法就是给ta一个你的环境的.yml文件。

首先通过activate target_env要分享的环境target_env,然后输入下面的命令会在当前工作目录下生成一个environment.yml文件

conda env export > environment.yml

小伙伴拿到environment.yml文件后,将该文件放在工作目录下,可以通过以下命令从该文件创建环境

conda env create -f environment.yml
移除环境

我们不再需要snakes环境了,可以输入以下命令:

conda remove -n myenv --all

管理包

conda安装和管理python包非常方便,可以在指定的python环境中安装包,且自动安装所需要的依赖包,避免了很多拓展包冲突兼容问题。

不建议使用easy_install安装包。大部分包都可以使用conda安装,无法使用conda和anaconda.org安装的包可以通过pip命令安装

使用合适的源可以提升安装的速度

查看已安装包
conda list

使用这条命令来查看哪个版本的python或其他程序安装在了该环境中,或者确保某些包已经被安装了或被删除了。

向指定环境安装包

我们在指定环境中安装requests包,有两种方式:

通过环境名安装

直接通过-n选项指定安装环境的名字

conda install --name py3 requests

提示:你必须告诉conda你要安装环境的名字(-n py3)否则它将会被安装到当前环境中。

激活py3环境,再使用conda install命令。

conda activate py3
conda install requests
通过pip命令安装

对于那些无法通过conda安装或者从Anaconda.org获得的包,我们通常可以用pip命令来安装包。

可以上pypi网站查询要安装的包,查好以后输入pip install命令就可以安装这个包了。

我们激活想要放置程序的python环境,然后通过pip安装一个叫“PyMysql”的包。

# Linux, OS X
source activate bunnies

# Windows
activate py3
# 安装
pip install pymysql

pip只是一个包管理器,所以它不能为你管理环境。pip甚至不能升级python,因为它不像conda一样把python当做包来处理。但是它可以安装一些conda安装不了的包。

小技巧:在任何时候你可以通过在命令后边跟上-help来获得该命令的完整文档。很多跟在–后边常用的命令选项,可以被略写为一个短线加命令首字母。所以–name选项和-n的作用是一样的。通过conda -h或conda –-help来看大量的缩写。

移除包

假设你决定不再使用包pymysql。你可以在py3环境中移除它。

conda remove -n py3 pymysql

删除conda

Linux/OS X

移除Anaconda 或 Miniconda 安装文件夹

rm -rf ~/miniconda
# OR
rm -rf ~/anaconda
Windows

去控制面板,点击“添加或删除程序”,选择“Python2.7/3.6(Anaconda)”或“Python2.7/3.6(Miniconda)”并点击删除程序。