• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >python > Python中pip安装非PyPI官网第三方库的方法

Python中pip安装非PyPI官网第三方库的方法

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了pypi.python.org,python pypi,e pypi python org,python中pypi,pypi等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在python中安装非自带python模块,有三种方式:

1.easy_install
2.pip
3.下载压缩包(.zip, .tar, .tar.gz)后解压, 进入解压缩的目录后执行python setup.py install命令

本文主要针对pip安装时可能会碰到的一种情况,及解决办法:

假如我要安装pylint模块,该模块非python自带模块,用import肯定不能导入,需要额外安装
>>> import pylint 
Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
ImportError: No module named pylint 
</div>

【现象】

执行pip install <modulename>命令,报错如下:

D:\>pip install pylint --allow-external pylint 
Downloading/unpacking pylint 
Requirement already satisfied (use --upgrade to upgrade): six in c:\python27\lib\site-packages\six-1 
.8.0-py2.7.egg (from pylint) 
Downloading/unpacking astroid>=1.3.6 (from pylint) 
  Real name of requirement astroid is astroid 
  Could not find any downloads that satisfy the requirement astroid>=1.3.6 (from pylint) 
  Some insecure and unverifiable files were ignored (use --allow-unverified astroid to allow). 
Cleaning up... 
No distributions at all found for astroid>=1.3.6 (from pylint) 
Storing debug log for failure in C:\Users\aaa\pip\pip.log 
</div>

【分析】

在Perl中安装新模块,一般可以用PPM图形化工具,也可以用CPAN来安装,比如说: cpan>install Test::Class, 非常方便,不会碰到这种情况,这种情况主要是因为pip版本问题: pip最新的版本(1.5以上的版本), 出于安全的考
虑,pip不允许安装非PyPI的URL,因为该安装文件实际上来自pylint.org,因而导致上面的错误!

NOTE:

1. 可以在官方changelog里面查看更改的信息
2. 可以用pip --version来查看pip的版本信息
C:\>pip --version 
pip 1.5.6 from C:\Python27\lib\site-packages (python 2.7) 
</div>

【办法】

针对上面的情况,既然这个问题是因为pip版本的原因,可以改用pip低一点的版本
方法一: 用pip 1.4版本,再执行pip install pylint命令来安装
方法二: 执行命令时,加上--allow-all-external, --allow-unverified及依赖包版本(astroid==1.3.6)
pip install pylint --allow-all-external pylint astroid==1.3.6 --allow-unverified pylint
</div>
NOTE:
1. --allow-all-external   # 允许所有外部地址的标签,只有打上该标签pip方可下载外部地址模块
2. --allow-unverified     #  pip没有办法校验外部模块的有效性,所以必须同时打上该标签
3. astroid==1.3.6          #  依赖包必须要添加上,并赋予其版本号,pip方能从列表下载    

方法三: 在当前目录下,新增requirements.txt,内容如下:
# requirements.txt 
--allow-all-external pylint 
--allow-unverified pylint 
pylint 
--allow-all-external astroid==1.3.6 
</div>

再执行: pip install -r requirements.txt
【结论】
1. pip这个设计不够友好,使用也很不方便,远不如Perl中的PPM,期待Python中也有这么个工具。
2. 如果碰到这种错,导致不能安装模块的话: 直接下载压缩包安装好了。 >>>下载包地址<<<
3. 执行pip -h命令查看更新pip相关的帮助信息

Usage:    
  pip <command> [options] 
 
Commands: 
  install                     Install packages. 
  uninstall                   Uninstall packages. 
  freeze                      Output installed packages in requirements format. 
  list                        List installed packages. 
  show                        Show information about installed packages. 
  search                      Search PyPI for packages. 
  wheel                       Build wheels from your requirements. 
  zip                         DEPRECATED. Zip individual packages. 
  unzip                       DEPRECATED. Unzip individual packages. 
  bundle                      DEPRECATED. Create pybundles. 
  help                        Show help for commands. 
 
General Options: 
  -h, --help                  Show help. 
  -v, --verbose               Give more output. Option is additive, and can be used up to 3 times. 
  -V, --version               Show version and exit. 
  -q, --quiet                 Give less output. 
  --log-file <path>           Path to a verbose non-appending log, that only logs failures. This log is active by def

您可能想查找下面的文章:

  • Python上传package到Pypi(代码简单)
  • Python中pip安装非PyPI官网第三方库的方法

相关文章

  • Python中使用 Selenium 实现网页截图实例
  • Python写的一个定时重跑获取数据库数据
  • 用Python从零实现贝叶斯分类器的机器学习的教程
  • python中使用urllib2伪造HTTP报头的2个方法
  • Python提取网页中超链接的方法
  • Python爬取京东的商品分类与链接
  • 解读Python中degrees()方法的使用
  • 详解Python中的静态方法与类成员方法
  • python按照多个字符对字符串进行分割的方法
  • Python中的模块导入和读取键盘输入的方法

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • Windows安装Python、pip、easy_install的方法
    • python解析模块(ConfigParser)使用方法
    • python超简单解决约瑟夫环问题
    • Python生成随机MAC地址
    • 详解Python中的变量及其命名和打印
    • 整理Python 常用string函数(收藏)
    • Python 中urls.py:URL dispatcher(路由配置文件)详解
    • python生成指定长度的随机数密码
    • python实现倒计时的示例
    • Python的Django框架中模板碎片缓存简介

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有