pip常用命令和常见问题

pip常用命令和一些坑

 

pip参考文档

(https://pip.pypa.io/en/stable/getting-started/)

 

注意事项

下面三点很重要,放在了最前面。

  • • 如果有多个python版本(比如你在使用虚拟环境),使用python -m pip替代pip,避免使用其它版本Python的pip,导致安装到错误的位置。可以用pip -V 查看pip版本和所在位置。

  • • 最好不要混用condapip

  • • 由于网络特色,我们无法访问很多网站。为了正常使用,需要换成国内的源,具体方法参考(https://mirrors.tuna.tsinghua.edu.cn/help/pypi/)或者自行百度 pip 换源。

  • 此外,如果你使用conda,也需要换源(conda的换源参考 https://mirrors.tuna.tsinghua.edu.cn/help/anaconda/)。

pip 常用命令

安装

以安装requests为例,说明pip安装的几种方法。通常方法1就够了。 

  1. 从PyPI安装: 
    pip install requests 
    使用国内的网站(清华源)下载:
    pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple 
    或者用Pypi源: https://pypi.python.org/simple 

  2. 安装.whl 
    有时候,没法从pip直接安装,可以去下载whl文件,然后通过下面语句安装: 
    pip install requests-2.22.0-py2.py3-none-any.whl

  3. 从git仓库安装: pip install git+https://github.com/psf/requests.git 

  4. 从目录安装: pip install /home/user/src/requests

搜索包

现在无法直接用pip search,需要先安装pip_search: 
pip install pip_search
使用pip_search搜索可用的包版本: 
pip_search requests

安装具体的版本

pip install requests==2.22.0

pip install requests>=2.22.0,<3

pip install requests!=2.21.0

查看包

查看包的详细信息,包括包的位置: 
pip show requests

查看安装过的所有包: 
pip list

查看包所在目录

python -m site

导出当前环境的包 FREEZING

将当前环境的包导出到requirements.txt 
pip freeze > requirements.txt 

将requirements.txt发到另一台电脑,可以在另一台电脑上安装这些包:
pip install -r requirements.txt

特殊情况可能用到的命令

下载

下载某个包及其依赖: 

pip download <package> 
pip download package_name -d "要保存的文件路径"

强制重新安装

有时候某个包安装到一半出错了,但是已经创建了目录,pip会认为已经安装了,无法通过install正常安装,可以用--force-reinstall命令强制安装。
例如:强制重新安装requests、不使用缓存、使用清华源:

pip install --force-reinstall --no-cache-dir -i https://pypi.tuna.tsinghua.edu.cn/simple requests

WHEELS

1.将某个包及其依赖变成wheels,并存到/tmp/wheelhouse文件夹: 
pip wheel --wheel-dir=/tmp/wheelhouse SomePackage 
相应的,安装创建的wheels: 
pip install --no-index --find-links=/tmp/wheelhouse SomePackage

2.多个包,可以写入requirements.txt,然后使用下面命令创建wheel:
 pip wheel --wheel-dir wheelhouse -r requirements.txt

踩坑实例

下面是使用pip时容易出现的问题。

1. 超时 Timeout

ece52b6a37b54bb68303dda1d32d4575.png

 

 

超时.png

 

从一些网站下载包时可能出现超时,解决方法是用换源,或者手动下载wheel并安装。

2. 安装的包不见了!

很多时候在默认环境安装了包,然后再另一个虚拟环境使用包,就会发现用不了。或者你确实在虚拟环境安装了包,但是使用的是默认环境的pip,安装在默认环境。

所以在虚拟环境里最好用python -m pip 替代pip命令。

3. 安装失败后,重装

假设我在安装scrapy过程中网络断开或者断电,导致安装失败,但是用pip install再安装时pip会发现已经有了这个包,不会重新安装。
这个时候需要强制重装: pip install --force-reinstall --no-cache-dir scrapy

4. 重量级——升级pip过程中失败

如果升级pip过程中失败了(升级pip时忘了加--user导致权限不够;或者断网、断电;),旧的pip卸载了,新的pip还没装上,pip就消失了:

ebe6446fd68c45c5839d3a29239f9df0.png

 

pip升级失败.png

那么问题来了,我们用pip安装各种包(包括pip本身),现在pip没了,该用什么安装pip呢?如果你安装了conda,可以通过conda重装: conda install -f pip

如果没有conda,情况会比较麻烦:你需要下载get-pip.py文件: 
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py 

然后运行安装脚本安装pip:
 python get-pip.py

5. 其它问题

除了上面的4个常见问题,还有一些不太常见的问题。

  1. 版本冲突或不支持所用的Python版本:使用版本较低的Python环境或手动安转wheel。

  2. 打错包的名称。pypi里的包很多,有时候打错一个字母不会报错,而会安装另一个包。(通常只是多安装一个没用的包。最坏的情况是,这个错的包是病毒程序)
    此外还有些包的名称在import时和pip安装时不一样,注意区分。

  3. 找不到该包下的xx模块:可以导入包,但是找不到具体的模块。可能原因有:
    1、安装过程出错导致的安装不完整,考虑强制重装。
    2、创建了和包同名的文件,导致import时将该文件导入了,而没有去找包目录下的包。

其它注意事项

  • • pip install 和conda install的区别 
    简单来说,安装位置不同:
    conda安装到 anaconda3/pkgs 
    pip 安装到当前Python环境下的包:anaconda3/envs/current_env/lib/python3.x/site-packages

  • pip install 和conda install的区别

    https://www.zhihu.com/question/395145313/answer/2449421755


 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值