python下包管理与虚拟环境
前言
使用python,我们经常需要安装一些我们库/包,基于这些库提供的函数来构建自己的程序。这个时候就需要知道怎么来安装这些库。
并且我们在开发过程中,不同的项目用到的python版本不一致,如果直接在系统下安装python环境,在开发不同项目时安装库会因为python的版本问题产生冲突,而常用的方式是为每个项目创建env虚拟环境,在虚拟环境中安装项目需要的python版本和对应版本的库。每个项目使用自己的虚拟环境,自然不会产生冲突。
包安装
注意python在安装包时需要首先知道python的版本(python2/python3)和位数(32/64位)
包下载之前,先将
pip
和setuptools
包更新到最新,减少包安装过程中的错误。
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的安装以及使用
下载xxx包的压缩文件xxx.whl
pip install xxx.whl
一般的包的whell文件都有收录在pypi.org中收录,所以从pypi下载即可。
source源码安装
下载xxx包的源码文件
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机器人库),不知道怎么回事
虚拟环境(env)迁移:
场景:想将conda创建env环境,copy到另一台同样操作系统的电脑上,方便继续在新电脑上开发。
首先要明白,迁移的内容是env环境,而env中安装过的库的pkg都在anaconda/pkgs
目录下,因此迁移时,需要将env和库的pkg复制到另一台需要创建同样环境的电脑上。
复制pkg后,就不需要在新电脑上重新下载了,会快很多。
步骤如下:
复制
anaconda\envs
目录下需要拷贝的虚拟环境文件夹到新电脑上复制
anaconda\pkgs
目录下的内容到新电脑上的anaconda\pkgs
下。通过 拷贝的虚拟环境 来构建新电脑上的虚拟环境
1
conda create -n 新建虚拟环境名字 --clone path/to/要拷贝的虚拟环境名字 --offline
virtualenv
virtualenv envname
创建
运行envname\Script\acitvate来激活虚拟环境
deactivate
推出虚拟环境