前言

使用python,我们经常需要安装一些我们库/包,基于这些库提供的函数来构建自己的程序。这个时候就需要知道怎么来安装这些库。

并且我们在开发过程中,不同的项目用到的python版本不一致,如果直接在系统下安装python环境,在开发不同项目时安装库会因为python的版本问题产生冲突,而常用的方式是为每个项目创建env虚拟环境,在虚拟环境中安装项目需要的python版本和对应版本的库。每个项目使用自己的虚拟环境,自然不会产生冲突。

包安装

注意python在安装包时需要首先知道python的版本(python2/python3)和位数(32/64位)

image-20210625152102894

包下载之前,先将pipsetuptools包更新到最新,减少包安装过程中的错误。

pip安装

python安装后默认就带有pip包管理工具

1. 配置pip包的国内源

pip默认的包资源都是通过国外的pip官方网站,国内使用网速不好。因此,使用国内的镜像网站(清华pip源、豆瓣pip源)下载更加高效。

pip config set global.index-url http://mirrors.aliyun.com/pypi/simple

pip config set global.trusted-host mirrors.aliyun.com

or

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple

2. pip安装第三方包

pip search xxx

pip search 命令已被弃用。现在需要安装 pip-search包,使用pip_search xxx

pip install xxx

pip install xxx==1.01

pip install 安装python相关包时,常常会由于网络问题,导致超时,下载失败,而且换成国内源的时候,也有可能出现这种情况。这个时候可以通过修改timeout加长download的下载时间,缓解超时的问题:--timeout=100

pip install -i http://mirrors.aliyun.com/pypi/simple –trusted-host mirrors.aliyun.com 指定镜像源

pip list 列出当前已安装的第三方包

pip install --upgrade xxx 更新包

pip uninstall xxx 卸载包

pip show xxx 查看安装好的包信息

pip -V 查看当前使用的pip的版本和位置

whell安装

wheel文件本质上就是zip或者rar,只不过它更加方便python的安装以及使用

  1. 下载xxx包的压缩文件xxx.whl

  2. pip install xxx.whl

一般的包的whell文件都有收录在pypi.org中收录,所以从pypi下载即可。

source源码安装

  1. 下载xxx包的源码文件

  2. python setup.py install

说明

其实当我们使用pip安装时,都是whl和source的安装方式,只不过是pip命令自动帮我们下载whl文件或源码,然后自动安装。可以仔细看一下pip install过程中输入的console信息。

虚拟环境

Conda: 包管理 + 虚拟环境

包管理

配置国内源

添加:conda config --add channels https://mirrors.aliyun.com/pypi/simple/

删除:conda config --remove channels https://mirrors.aliyun.com/pypi/simple/

查看源:conda config --show-sourcec
  • 查看安装的包: conda list

  • 安装包:

    conda search xxx

    conda install xxx

虚拟环境

创建虚拟环境:conda create –name envname python=2.7.10

如何创建不同位数的python环境?

![image-20210720225219101](/Users/lifeisbinary/Library/Application Support/typora-user-images/image-20210720225219101.png)

进入虚拟环境:conda activate envname

退出当前虚拟环境:conda deactivate

查看当前存在的虚拟环境:conda env list

删除虚拟环境 :conda env remove -n envname

有些包在conda的虚拟环境中安装后,在导入时会出现SystemError: dynamic module not initialized properly的错误,但是virtualenv创建的环境中却没有问题。如qi库(softbank机器人库),不知道怎么回事

image-20210615005905639

虚拟环境(env)迁移:

场景:想将conda创建env环境,copy到另一台同样操作系统的电脑上,方便继续在新电脑上开发。

首先要明白,迁移的内容是env环境,而env中安装过的库的pkg都在anaconda/pkgs目录下,因此迁移时,需要将env和库的pkg复制到另一台需要创建同样环境的电脑上。

复制pkg后,就不需要在新电脑上重新下载了,会快很多。

步骤如下:

  1. 复制 anaconda\envs目录下需要拷贝的虚拟环境文件夹到新电脑上

  2. 复制anaconda\pkgs目录下的内容到新电脑上的anaconda\pkgs下。

  3. 通过 拷贝的虚拟环境 来构建新电脑上的虚拟环境

    1
    conda create -n 新建虚拟环境名字 --clone path/to/要拷贝的虚拟环境名字 --offline

virtualenv

virtualenv envname 创建

运行envname\Script\acitvate来激活虚拟环境

deactivate 推出虚拟环境

参考

https://ckfanzhe.github.io/About_conda/