zoukankan      html  css  js  c++  java
  • Python中怎样用pip安装外部主机文件

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

    • easy_install
    • pip
    • 下载压缩包(.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
    现象

    运行pip install <modulename>命令,报错例如以下:

    D:>pip install pylint --allow-external pylint
    Downloading/unpacking pylint
    Requirement already satisfied (use --upgrade to upgrade): six in c:python27libsite-packagessix-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:Usersaaapippip.log
    分析

    在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:Python27libsite-packages (python 2.7)

    办法

    针对上面的情况,既然这个问题是由于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

    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
    再运行: 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 default at pip.log.
      --log <path>                Path to a verbose appending log. This log is inactive by default.
      --proxy <proxy>             Specify a proxy in the form [user:passwd@]proxy.server:port.
      --timeout <sec>             Set the socket timeout (default 15 seconds).
      --exists-action <action>    Default action when a path already exists: (s)witch, (i)gnore, (w)ipe, (b)ackup.
      --cert <path>               Path to alternate CA bundle.
    









  • 相关阅读:
    hdu 2196 树形dp
    codeforces 1A
    [日常摸鱼]bzoj1218[HNOI2003]激光炸弹-二维前缀
    [日常摸鱼]bzoj2724蒲公英-分块
    [日常摸鱼]关于离散化
    [OI笔记]后缀自动机
    [日常摸鱼]poj1509Glass Beads-SAM
    [日常摸鱼]bzoj1083[SCOI2005]繁忙的都市-最小生成树
    [日常摸鱼]bzoj2038[2009国家集训队]小Z的袜子-莫队算法
    [日常摸鱼]三分法
  • 原文地址:https://www.cnblogs.com/tlnshuju/p/7137539.html
Copyright © 2011-2022 走看看