Anaconda使用指南

conda命令 pip命令

Posted by BY 李翔龙 on June 17, 2021

Anaconda使用教程

20210416更新spyder版本遇到的问题:

  • 升级到5.0.0,不能打开。去stackoverflow上搜索问题,没有一个可以解决的。百度什么的更垃圾。
    • 看下报错的信息,打开最后的文件,定位报错的位置,分析逻辑。能注释掉的注释掉就OK了。
  • 降级到4.2.5,可以打开。但是包不能导入。conna list查看安装的包,发现包在,但是import 包名不能导入。
  • 查找历史版本为4.0.1,重新安装4.0.1,还是不能打开包。
  • 查找网络,发现可能是没有先卸载再安装导致,进入anaconda先卸载spyder然后再安装spyder,还是不能导入包。
  • 再进入anaconda先卸载spyder然后再默认安装spyder,安装的是3.3.6版本,但是还是不能导入包。conda install numpy后,可以导入包,但是其他没有再重新安装的包不能导入。中文工具栏也没了。并且不能设置中文工具栏了。jupyter notebook也打不开了–百度后发现需要重新卸载安装一些包,尝试后可以打开jupyter notebook。MD好气!!!
  • 使用anaconda切换环境,发现可以打开spyder并导入包,运行之前的程序,可以运行。很惊喜,以为是base的环境被破坏了,仔细一看,发现切换的环境里的spyder竟然没有更新,是4.0.1版本。
  • 总结:
    • 1.没事经常保存环境;
    • 2.不要更新anaconda的spyder;
    • 3.再浪下,能不能把保存的环境替换base环境。
      • 回滚conda环境conda list --revision # 查看历史更改版本记录–>conda install --rev 1 # 恢复到要更改的版本

conda help显示conda可用的全部命令

usage:  conda [-h] [-V] command ...
clean    #移除不用的包和缓存文件
config    #修改.condarc文件中的配置值,这里的.condarc文件类似于.vimrc或者.bashrc,用于配置conda的设置。模仿了git的配置命令,默认将配置写入到HOME文件夹下的.condarc文件中
create    #从一系列特定的包创建一个新的conda环境
help    #conda help文件
info    #显示当前conda的信息,包括路径,channels等
init    #初始化conda和shell的交互,实验性功能
install    #在特定的环境安装一系列包
list    #列出在一个conda环境中被linked(被关联)的包
package    #低等级的conda软件包实用程序?(实验性功能)不晓得有什么用
remove    #从一个特定的conda环境中移除一系列包
uninstall    #remove命令的别名
run    #在conda环境中跑一个可执行程序(实验性功能)
search    #找寻包并显示相关的信息。输入是MatchSpec,一种结构化查询语言。理解为一种约定的查询方式?
update    #把conda包更新到最新的兼容版本
upgrade    #update命令的别名

检查conda版本

conda -V

conda常用的命令

1)conda list 查看安装了哪些包。

conda list

2)conda env list 或 conda info -e 查看当前存在哪些虚拟环境

conda env list
conda info -e

3)conda update conda 检查更新当前conda

conda update conda

更新至最新版本,也会更新其它相关包

conda update conda #更新至最新版本,也会更新其它相关包
conda update --all #更新所有包
conda update package_name #更新指定的包

创建python虚拟环境

使用 conda create -n your_env_name python=X.X(2.7、3.6等)命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。

conda create -n env_name python=3.8

环境重命名/复制

conda create –name new_env_name –clone old_env_name #复制old_env_name为new_env_name

conda create --name new_env_name --clone old_env_name
conda create --name base20210416 --clone nlp_env	# 复制nlp_env为base20210416
conda create --name nlp_env --clone base20210416	# 复制base20210416为nlp_env

回滚/恢复到anaconda以前的版本

只能回滚到某时刻创建的版本。

conda list --revision	# 查看历史更改版本记录
conda install --rev 1	# 恢复到rev 1时刻创建的版本

image-20210416220236072

image-20210416220257829

检查更新当前 conda 环境

conda update conda

设置搜索时显示通道地址

# 设置搜索时显示通道地址
conda config ``-``-``set` `show_channel_urls yes

使用激活(或切换不同python版本)的虚拟环境

打开命令行输入python –version可以检查当前python的版本。

python --version

使用如下命令即可激活你的虚拟环境(即将python的版本改变)

Linux: source activate your_env_name(虚拟环境名称)

Windows: activate your_env_name(虚拟环境名称)

source activate env_name	# Linux
activate env_name			# Windows

这时再使用python –version可以检查当前python版本是否为想要的。

对虚拟环境中安装额外的包

使用命令conda install -n your_env_name [package]即可安装package到your_env_name中

conda install -n env_name [package]

安装指定源地址的包

pip install torch==0.4.1 -f https://download.pytorch.org/whl/torch_stable.html

关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认python版本)

使用如下命令即可。

Linux: source deactivate
Windows: deactivate

删除虚拟环境

使用命令conda remove -n your_env_name(虚拟环境名称) –all, 即可删除。

conda remove -n your_env_name --all

删除环境中的某个包

使用命令conda remove –name your_env_name package_name 即可。

conda remove --name your_env_name package_name
pip uninstall package_name

更换镜像源

常用源地址:
阿里云 
http://mirrors.aliyun.com/pypi/simple/

中国科技大学 
https://pypi.mirrors.ustc.edu.cn/simple/

豆瓣(douban) 
http://pypi.douban.com/simple/

清华大学 
https://pypi.tuna.tsinghua.edu.cn/simple/

中国科学技术大学 
http://pypi.mirrors.ustc.edu.cn/simple/

山东理工大学
http://pypi.sdutlinux.org/simple

华中理工大学
http://pypi.hustunique.com/simple


更换为清华源

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge 
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/

永久更换镜像源

Windows更改pip镜像源 (1)在windows文件管理器中,输入 %APPDATA% (2)会定位到一个新的目录下,在该目录下新建pip文件夹,然后到pip文件夹里面去新建个pip.ini文件 (3)在新建的pip.ini文件中输入以下内容,搞定文件路径: “C:\Users\Administrator\AppData\Roaming\pip\pip.ini”

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

二、在linux系统中更新pip源的方式 1、在用户的家目录下面创建名为.pip文件夹 2、在创建好的.pip文件夹中创建名为pip.conf的文件 3、在pip.conf文件中输入以下内容

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

解决python库安装的问题:

导出全部的包到txt文件

pip freeze > packages.txt
pip list > packages.txt

今天发现一个全新的一次性安装你需要库的方法: 首先进入你的anaconda prompt命令行 在默认路径下创建一个xxx.txt文件,如下图:

这里写图片描述

使用命令:

批量安装环境

pip install -r xxx.txt(我这里是requirements.txt)1

这里写图片描述

离线安装whl包

首先,去包的官网下载whl文件,然后使用cmd进入下载文件的路径。切换至要安装的环境,然后执行pip install *.whl即可安装。

image-20210410210124887

pip命令

1. 查询软件包

查询当前环境安装的所有软件包

$ pip list/conda list

查询 pypi 上含有某名字的包

$ pip search pkg

查询当前环境中可升级的包

$ pip list --outdated
$ pip list -o

查询一个包的详细内容

$ pip show pkg

1.1 查看库信息

$ pip show -f package_name

image-20210502082645884

1.2 检查兼容问题

验证已安装的库是否有兼容依赖问题

$ pip check package-name

image-20210502082845352

2. 下载软件包

在不安装软件包的情况下下载软件包到本地

$ pip download --destination-directory /local/wheels -r requirements.txt

下载完,总归是要安装的,可以指定这个目录中安装软件包,而不从 pypi 上安装。

$ pip install --no-index --find-links=/local/wheels -r requirements.txt

当然你也从你下载的包中,自己构建生成 wheel 文件

$ pip install wheel
$ pip wheel --wheel-dir=/local/wheels -r requirements.txt

2.1 下载库到本地

将库下载到本地指定文件,保存为whl格式

$ pip download package_name -d "要保存的文件路径"

image-20210502082933063

3. 安装软件包

使用 pip install <pkg> 可以很方便地从 pypi 上搜索下载并安装 python 包。

如下所示

$ pip install package_name

这是安装包的基本格式,我们也可以为其添加更多参数来实现不同的效果。

3.1 只从本地安装,而不从 pypi 安装

# 前提你得保证你已经下载 pkg 包到 /local/wheels 目录下
$ pip install --no-index --find-links=/local/wheels pkg

3.2 限定版本进行软件包安装

以下三种,对单个 python 包的版本进行了约束

# 所安装的包的版本为 2.1.2
$ pip install pkg==2.1.2

# 所安装的包必须大于等于 2.1.2
$ pip install pkg>=2.1.2

# 所安装的包必须小于等于 2.1.2
$ pip install pkg<=2.1.2
以下命令用于管理/控制整个 python 环境的包版本
# 导出依赖包列表
$ pip freeze >requirements.txt

# 从依赖包列表中安装
$ pip install -r requirements.txt

# 确保当前环境软件包的版本(并不确保安装)
$ pip install -c constraints.txt

3.3 限制不使用二进制包安装

由于默认情况下,wheel 包的平台是运行 pip download 命令 的平台,所以可能出现平台不适配的情况。

比如在 MacOS 系统下得到的 pymongo-2.8-cp27-none-macosx_10_10_intel.whl 就不能在 linux_x86_64 安装。

使用下面这条命令下载的是 tar.gz 的包,可以直接使用 pip install 安装。

比 wheel 包,这种包在安装时会进行编译,所以花费的时间会长一些。

# 下载非二进制的包
$ pip download --no-binary=:all: pkg

# 安装非二进制的包
$ pip install pkg --no-binary

3.4 使用wheel文件离线安装库

这种方法适合离线安装,wheel文件是库的源文件,可以下载后放到本地安装。

步骤如下:

(1) 在下面网站里找相应库的.whl文件 https://www.lfd.uci.edu/~gohlke/pythonlibs/

(2) 下载.whl文件,注意对应的版本

image-20210502082415382

(3) 在.whl所在文件夹内,按Shift键+鼠标右键,打开CMD窗口或者PowerShell

(4) 输入命令:

$ pip install matplotlib‑3.4.1‑cp39‑cp39‑win_amd64.whl

即可完成安装

3.5 指定代理服务器安装

当你身处在一个内网环境中时,无法直接连接公网。这时候你使用pip install 安装包,就会失败。

面对这种情况,可以有两种方法:

  1. 下载离线包拷贝到内网机器中安装
  2. 使用代理服务器转发请求

第一种方法,虽说可行,但有相当多的弊端

  • 步骤繁杂,耗时耗力
  • 无法处理包的依赖问题

这里重点来介绍,第二种方法:

$ pip install --proxy [user:passwd@]http_server_ip:port pkg

每次安装包就发输入长长的参数,未免有些麻烦,为此你可以将其写入配置文件中:$HOME/.config/pip/pip.conf

对于这个路径,说明几点

  • 不同的操作系统,路径各不相同
# Linux/Unix:
/etc/pip.conf
~/.pip/pip.conf
~/.config/pip/pip.conf

# Mac OSX:
~/Library/Application Support/pip/pip.conf
~/.pip/pip.conf
/Library/Application Support/pip/pip.conf

# Windows:
%APPDATA%\pip\pip.ini
%HOME%\pip\pip.ini
C:\Documents and Settings\All Users\Application Data\PyPA\pip\pip.conf (Windows XP)
C:\ProgramData\PyPA\pip\pip.conf (Windows 7及以后) 
  • 若在你的机子上没有此文件,则自行创建即可

如何配置,这边给个样例:

[global]
index-url = http://mirrors.aliyun.com/pypi/simple/ 

# 替换出自己的代理地址,格式为[user:passwd@]proxy.server:port
proxy=http://xxx.xxx.xxx.xxx:8080 

[install]
# 信任阿里云的镜像源,否则会有警告
trusted-host=mirrors.aliyun.com 

3.6 安装用户私有软件包

很多人可能还不清楚,python 的安装包是可以用户隔离的。

如果你拥有管理员权限,你可以将包安装在全局环境中。在全局环境中的这个包可被该机器上的所有拥有管理员权限的用户使用。

如果一台机器上的使用者不只一样,自私地将在全局环境中安装或者升级某个包,是不负责任且危险的做法。

面对这种情况,我们就想能否安装单独为我所用的包呢?

庆幸的是,还真有。

我能想到的有两种方法:

  1. 使用虚拟环境
  2. 将包安装在用户的环境中

虚拟环境,之前写过几篇文章,这里不再展开讲。

今天的重点是第二种方法,教你如何安装用户私有的包?

命令也很简单,只要加上 --user 参数,pip 就会将其安装在当前用户的 ~/.local/lib/python3.x/site-packages 下,而其他用户的 python 则不会受影响。

$ pip install --user pkg

来举个例子

# 在全局环境中未安装 requests
[root@localhost ~]# pip list | grep requests   
[root@localhost ~]# su - wangbm
[root@localhost ~]# 

# 由于用户环境继承自全局环境,这里也未安装
[wangbm@localhost ~]# pip list | grep requests 
[wangbm@localhost ~]# pip install --user requests  
[wangbm@localhost ~]# pip list | grep requests 
requests (2.22.0)
[wangbm@localhost ~]# 

# 从 Location 属性可发现 requests 只安装在当前用户环境中
[wangbm@ws_compute01 ~]$ pip show requests
---
Metadata-Version: 2.1
Name: requests
Version: 2.22.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.org
Installer: pip
License: Apache 2.0
Location: /home/wangbm/.local/lib/python2.7/site-packages
[wangbm@localhost ~]$ exit
logout

# 退出 wangbm 用户,在 root 用户环境中发现 requests 未安装
[root@localhost ~]$ pip list | grep requests
[root@localhost ~]$ 

当你身处个人用户环境中,python 导包时会先检索当前用户环境中是否已安装这个包,已安装则优先使用,未安装则使用全局环境中的包。

验证如下:

>>> import sys
>>> from pprint import pprint 
>>> pprint(sys.path)
['',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/home/wangbm/.local/lib/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/pip-18.1-py2.7.egg',
 '/usr/lib/python2.7/site-packages/lockfile-0.12.2-py2.7.egg']
>>> 

3.7 延长超时时间

若网络情况不是很好,在安装某些包时经常会因为 ReadTimeout 而失败。

对于这种情况,一般重试几次就好了。

但是这样难免有些麻烦,有没有更好的解决方法呢?

有的,可以通过延长超时时间。

$ pip install --default-timeout=100 <packages>

4. 卸载软件包

就一条命令,不再赘述

$ pip uninstall pkg

5. 升级软件包

想要对现有的 python 进行升级,其本质上也是先从 pypi 上下载最新版本的包,再对其进行安装。所以升级也是使用 pip install,只不过要加一个参数 --upgrade

$ pip install --upgrade pkg

在升级的时候,其实还有一个不怎么用到的选项 --upgrade-strategy,它是用来指定升级策略。

它的可选项只有两个:

  • eager :升级全部依赖包
  • only-if-need:只有当旧版本不能适配新的父依赖包时,才会升级。

在 pip 10.0 版本之后,这个选项的默认值是 only-if-need,因此如下两种写法是一互致的。

$ pip install --upgrade pkg1 
$ pip install --upgrade pkg1 --upgrade-strategy only-if-need

6. 配置文件

由于在使用 pip 安装一些包时,默认会使用 pip 的官方源,所以经常会报网络超时失败。

常用的解决办法是,在安装包时,使用 -i 参数指定一个国内的镜像源。但是每次指定就很麻烦呀,还要打超长的一串字母。

这时候,其实可以将这个源写进 pip 的配置文件里。以后安装的时候,就默认从你配置的这个 源里安装了。

那怎么配置呢?文件文件在哪?

使用win+r 输入 %APPDATA% 进入用户资料文件夹,查看有没有一个 pip 的文件夹,若没有则创建之。

然后进入这个 文件夹,新建一个 pip.ini 的文件,内容如下

[global]
time-out=60
index-url=https://pypi.tuna.tsinghua.edu.cn/simple/
[install]
trusted-host=tsinghua.edu.cn

7.安装pip

从Python 3.4开始,pip已经内置在Python中,所以无需再次安装。

如果你的Python版本没有pip,那可以使用下面两种方法安装。

(1) 命令行中输入,非常快捷

$ easy_install pip

(2) 在下面网址中下载pip安装文件,然后解压到python scripts目录中,执行python setup.py install安装即可

下载网址:https://pypi.org/project/pip/#files

下载文件:

图片

8.查看pip版本

$ pip --version

图片

9.升级pip

如果pip的版本太低,可以升级当前版本

$ pip install --upgrade pip

10.获取帮助

想了解如何使用pip,以及pip有哪些功能,执行下面语句可以获取详细教程:

$ pip help

11. 更换镜像源

这些镜像源备份了PyPi里的数据,由于服务器在国内,速度会快很多。

但镜像源数据有滞后性,比如说清华源的pypi 镜像每 5 分钟同步一次。

使用镜像源有两种方式,以清华源为例:

(1) 临时使用

$ pip install -i https://pypi.tuna.tsinghua.edu.cn/simple some-package matplotlib

除了matplotlib是要安装的库名外,其他都是固定格式

(2) 设为默认

$ pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

设为默认后,以后安装库都是从清华源下载,而且无需再加镜像源网址

附主流镜像源地址

清华:
https://pypi.tuna.tsinghua.edu.cn/simple
阿里云:
http://mirrors.aliyun.com/pypi/simple/
中国科技大学 
https://pypi.mirrors.ustc.edu.cn/simple/
华中理工大学:
http://pypi.hustunique.com/
山东理工大学:
http://pypi.sdutlinux.org/ 
豆瓣:
http://pypi.douban.com/simple/

1.安装shadowsocks-qt5

  打开终端,输入以下命令安装好GUI界面shadowsocks-qt5

    sudo add-apt-repository ppa:hzwhuang/ss-qt5

  2.Ubuntu18.04在安装shadowsocks-qt5时就会出现错误

    仓库 “http://ppa.launchpad.net/hzwhuang/ss-qt5/ubuntu bionic Release” 没有 Release 文件

  原因:ppa:hzwhuang/ss-qt5 并没有18.04版本的源

  解决方法:修改/etc/apt/sources.list.d/hzwhuang-ubuntu-ss-qt5-bionic.list文件,将bionic(18.04版本代号)改成xenial(16.04版本代号),然后再执行

    sudo apt-get update

    sudo apt-get install shadowsocks-qt5

  如果还不能解决,可以打开软件和更新——其他软件,把下面的那些非官方源的钩去掉或者直接删除

-20210403安装NLP环境经验总结

  1. 先备份环境,用测试环境进行安装,安装成功后测试下代码,没问题了,再更新主环境。
  2. 可以多创建几个分支,进行安装不同的环境,以便达到不同的目的。
  3. 切记不要浪。浪子即使可以回头,也耗费了有限的时间。

使用https://pypi.mirrors.ustc.edu.cn/simple/中国科技大学的镜像源安装,。

https://pypi.mirrors.ustc.edu.cn/simple/