python虚拟环境 + 批量pip + 换源

虚拟环境

曾经我是一个小白,不管运行什么项目都用一个环境,后来项目多了,有的是Django1.11的有的是Django2的,有的项目只能在3.6上运行,经历过的都明白吧。所以整理了几个常见的换虚拟环境的方法。

一、使用virtualenv

1. 使用pip

pip install virtualenv

2. 创建运行环境

virtualenv [虚拟环境名称]
virtualenv venv #如果不想使用系统的包,加上–no-site-packeages参数
virtualenv --no-site-packages 创建路径名

3. 激活环境

linux:

$ cd venv
$ source ./bin/activate

Windows 10:

> cd venv
> .\Scripts\activate.bat

4. 退出环境

linux:

$ deactivate

Windows 10:

> .\Scripts\deactivate.bat

5. 删除环境

没有使用virtualenvwrapper前,可以直接删除venv文件夹来删除环境

6. 使用环境

进入环境后,一切操作和正常使用python一样 安装包使用pip install 包

二、使用Virtualenvwrapper

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

1. 安装

# on Windows
pip install virtualenvwrapper-win
# on macOS / Linux
pip install --user virtualenvwrapper
# then make Bash load virtualenvwrapper automatically
echo "source virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc

2. 创建虚拟环境

# on macOS/Linux:
mkvirtualenv --python=python3.6 venv
# on Windows
mkvirtualenv --python=python3 venv

3. 激活环境

workon #列出虚拟环境列表
workon [venv] #切换环境

4. 退出环境

deactivate

5. 删除环境

rmvirtualenv venv

6. 其他有用指令

pip freeze #查看当前安装库版本
#创建 requirements.txt 文件,其中包含了当前环境中所有包及 各自的版本的简单列表
#保持部署相同,一键安装所有包
pip install -r requirements.txt
pip freeze > requirements.txt
lsvirtualenv #列举所有的环境
cdvirtualenv #导航到当前激活的虚拟环境的目录中,相当于pushd 目录
cdsitepackages # 和上面的类似,直接进入到 site-packages 目录
lssitepackages #显示 site-packages 目录中的内容

三、 使用conda管理

conda可以直接创建不同python版本的虚拟环境。前面讲的virtualenv只是指定创建不同python版本的虚拟环境,前提是你的电脑上已经安装了不同版本的python,与conda相比没有conda灵活。

1. 安装

下载anaconda安装的python直接可以使用conda工具

2. 创建虚拟环境

创建不同的python版本,直接写出版本号就好了,还可以同时安装想要的库。

# Python 2.7
$ conda create -n venv python=2.7 # Python 3.4
$ conda create -n venv python=3.4 # Python 3.5
$ conda create -n venv python=3.5

3. 激活虚拟环境

#on windows
activate venv
#on linux
source activate venv

4. 退出虚拟环境

#on windows
deactivate
#on linux
source deactivate

5. 删除虚拟环境

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

6. 其他有用指令

# 列出系统存在虚拟环境
conda info -e
conda env list # 查看当前环境下已安装的包
conda list # 查看某个指定环境的已安装包
conda list -n venv # 查找package信息
conda search numpy # 安装package
conda install -n venv numpy
# 如果不用-n指定环境名称,则被安装在当前激活环境
# 也可以通过-c指定通过某个channel安装 # 更新package
conda update -n venv numpy # 删除package
conda remove -n venv numpy

四. 使用pipenv管理

pipenv是Python官方推荐的包管理工具。 它综合了 virtualenv , pip 和 pyenv 三者的功能。能够自动为项目创建和管理虚拟环境。如果你使用过requests库,就一定会爱上这个库,因为是同一个大神出品。 pipenv使用 Pipfile 和 Pipfile.lock 来管理依赖包,并且在使用pipenv添加或删除包时,自动维护 Pipfile 文件,同时生成 Pipfile.lock 来锁定安装包的版本和依赖信息,避免构建错误。相比pip需要手动维护requirements.txt 中的安装包和版本,具有很大的进步。

1. 安装

pip install pipenv

2. 创建虚拟环境

$ cd myproject
$ pipenv install # 创建环境
$ pipenv install requests # 或者直接安装库

如果不存在pipfile,会生成一个pipfile,并且如果有的库添加会自动编辑该文件,不会我们手动更新requirements.txt文件了。

3. 激活Pipenv Shell

$ pipenv shell
$ python --version

批量pip

在包内打开窗口输入

pip install -r requirements.txt

将一个python环境导为requirements.txt的指令为为:

pip freeze >requirements.txt

pip换源

一次性使用

可以在使用pip的时候加参数-i https://pypi.tuna.tsinghua.edu.cn/simple

例如:pip install SomePackage -i https://pypi.tuna.tsinghua.edu.cn/simple

这样就会从清华这边的镜像去安装SomePackage库。

可选国内源:

永久修改,一劳永逸

linux下,修改 ~/.pip/pip.conf (没有就创建一个), 修改 index-url 为国内镜像地址,内容如下:

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

windows下,直接在user目录中创建一个pip目录,如:C:\Users\xx\pip,新建文件pip.ini,内容如下

[global]
index-url = https://pypi.tuna.tsinghua.edu.cn/simple

pip常见问题

HTTPSConnectionPool(host='mirrors.tuna.tsinghua.edu.cn', port=443): Read timed

解决:

sudo pip install --default-timeout=100 future

当然,也可以放在设置文件内,即上文换源的设置文件

[global]
timeout = 60000
index-url = https://pypi.tuna.tsinghua.edu.cn/simple #使用清华大学镜像源
[install]
use-mirrors = true
mirrors = https://pypi.tuna.tsinghua.edu.cn

python虚拟环境 + 批量pip + 换源的更多相关文章

  1. Python pip换源

    前言 哈喽呀,小伙伴们,晚上好呀,今天要给大家带来点什么呐,我们就来说说python的pip换源吧,这个换源,相对来说,还是比较重要的,能少生好几次气的,哈哈哈 为什么要换源 我们搞python的,肯 ...

  2. 第四百零一节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署virtualenv虚拟环境安装,与Python虚拟环境批量安装模块

    第四百零一节,Django+Xadmin打造上线标准的在线教育平台—生产环境部署virtualenv虚拟环境安装,与Python虚拟环境批量安装模块 virtualenv简介 1.安装virtuale ...

  3. pip换源

    PIP 下载慢,给你Python3的pip换个源 一键换源 文章来源:企鹅号 - 从零开始学习python 要实现一键换源需要安装一个模块 pip install pqi PQI相关命令 PQI获取当 ...

  4. conda、pip换源以及conda、pip命令比较

    conda换源: conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/ conda ...

  5. pip 换源

    pip 换源 pip国内的一些镜像   阿里云 http://mirrors.aliyun.com/pypi/simple/   中国科技大学 https://pypi.mirrors.ustc.ed ...

  6. Windows下anaconda换源和pip换源

    换源解决下载安装速度慢的问题. 1. anaconda换源 打开cmd命令行,输入 conda config --set showchannelurls yes 会在C:\Users\xx文件夹下生成 ...

  7. [Python]Pip换源以及设置代理

    Install python package with proxy sudo pip install python-magic --proxy=https://your-proxy.com 2.No ...

  8. pip换源安装

    pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple 要安装的 有些工具安装太慢, 换源安装一下, 速度一下子飞起

  9. Python虚拟环境中pip install时没有权限问题

    virtualenv Permission denied 新建的python虚拟环境的目录的所属者必须是当前用户,才不会出现这种错误 比如 virtualenv py27 sudo chown zzf ...

随机推荐

  1. pytorch入门2.1构建回归模型初体验(模型构建)

    pytorch入门2.x构建回归模型系列: pytorch入门2.0构建回归模型初体验(数据生成) pytorch入门2.1构建回归模型初体验(模型构建) pytorch入门2.2构建回归模型初体验( ...

  2. python数据类型转换&&格式化输出

    ①python的数据类型包含:数字.字符串.列表.元组.字典.集合这六种基本数据类型.不同数据类型的数据可以进行类型的转换. 使用input让用户输入的数据默认为字符串类型: name = input ...

  3. 构造函数,拷贝构造和赋值运算符调用时机,explicit,

    #include<iostream> #include <stdio.h> using namespace std; class test{ int mvalue; publi ...

  4. <VCC笔记> 关于Assertion

    这篇博客开始介绍VCC的用法,先用简单的例子介绍VCC的基本语法,当然面对更复杂的程序时,VCC也是将他简化然后分析的. 1.Assertion #include <vcc.h> int ...

  5. c# 不同单例的不同意义

    前言 在c#,可能有很多五花八门的单例给你选择,分什么懒汉模式等等什么模式,其实不同的写法对程序是有一定影响的. 正文 为什么需要单例呢?其实我们自己是可以控制单例的,只是单例模式给了我们一个好的设计 ...

  6. (一)HttpClient Get请求

    原文链接:https://blog.csdn.net/justry_deng/article/details/81042379 HttpClient的主要功能: 实现了所有 HTTP 的方法(GET. ...

  7. MySQL 性能优化之慢查询

    性能优化的思路 首先需要使用慢查询功能,去获取所有查询时间比较长的SQL语句 其次使用explain命令去查询由问题的SQL的执行计划(脑补链接:点我直达1,点我直达2) 最后可以使用show pro ...

  8. phpmyadmin系列渗透思路连载(一)

    当拿到phpmyadin的站点后,我一般会尝试一下几种攻击手法: 1.通过弱口令进入后台,尝试into outfile写入一句话 条件:(1)有写的权限    (2)知道web绝对路径    (3)w ...

  9. 为什么用抓包工具看HTTPS包是明文的

    测试或者开发调试的过程中,经常会进行抓包分析,并且装上抓包工具的证书就能抓取 HTTPS 的数据包并显示.由此就产生了一个疑问,为什么抓包工具装上证书后就能抓到 HTTPS 的包并显示呢?不是说 HT ...

  10. 旷世提出类别正则化的域自适应目标检测模型,缓解场景多样的痛点 | CVPR 2020

    论文基于DA Faster R-CNN系列提出类别正则化框架,充分利用多标签分类的弱定位能力以及图片级预测和实例级预测的类一致性,从实验结果来看,类该方法能够很好地提升DA Faster R-CNN系 ...