【问题标题】:Can pip install a python egg via a local package tar.gz file可以通过本地包 tar.gz 文件 pip 安装 python egg
【发布时间】:2013-04-20 22:55:57
【问题描述】:

在我的开发环境中,由于一些网络问题,当我运行时:

(my-virt-env)$ pip install lxml

它总是因为以下原因而失败:

Downloading/unpacking lxml
  Downloading lxml-3.1.2.tar.gz (3.3Mb): 1.2Mb downloaded
Exception:
Traceback (most recent call last):
  blablabla
error: [Errno 104] Connection reset by peer

然后我从其他地方下载了 lxml-3.1.2.tar.gz 并使用 USB 密钥将其复制过来。无论如何我可以告诉pip不要费心去互联网这个包,只需通过本地tar.gz安装它?所以我可以这样做:

(my-virt-env)$ pip install ${local_path}/lxml*.tar.gz

试过这个命令,我得到很长的错误信息:

pip install /home/shengjie/Downloads/lxml-3.1.2.tar.gz 
Unpacking /home/shengjie/Downloads/lxml-3.1.2.tar.gz
  Running setup.py egg_info for package from file:///home/shengjie/Downloads/lxml-3.1.2.tar.gz
    /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url'
      warnings.warn(msg)
    Building lxml version 3.1.2.
    Building without Cython.
    ERROR: /bin/sh: 1: xslt-config: not found

    ** make sure the development packages of libxml2 and libxslt are installed **
    ......................
    bla bla bla
    ......................

/tmp/pip-Vg13dM-build/src/lxml/includes/etree_defs.h:9:31: fatal error: libxml/xmlversion.h: No such file or directory

compilation terminated.

error: command 'gcc' failed with exit status 1


I am running Ubuntu, I know you can run `apt-get install python-lxml` and get it installed on your box. But that doesn't work for my case as I want install it in my virtual env: `my-virt-env`. 

【问题讨论】:

  • 你试过那个 pip 命令了吗?我本来希望它能够工作(如果我没记错的话,它适用于easy_install,所以我希望 pip 也能处理它)

标签: python lxml pip pypi


【解决方案1】:

可以的,命令是:

pip install --no-index --find-links=file:///[absolute path to your tar.gz]

【讨论】:

  • 问题不在于安装包,而是依赖关系。错误输出显示:/tmp/pip-Vg13dM-build/src/lxml/includes/etree_defs.h:9:31: fatal error: libxml/xmlversion.h: No such file or directory。这是通过“apt-getting”包的“-dev”变体修复的依赖问题。
【解决方案2】:

我看到的是它抱怨缺少 libxml2 和 libxslt 的 DEV 版本。

对这 2 个包 libxml2-dev 和 libxslt-dev 进行 apt-get 安装,然后再次执行 pip 安装,看看情况如何。

【讨论】:

  • 我安装了 libxml2,但是 sudo apt-get install libxslt,我无法找到包 libxslt。我正在运行 Ubuntu 12.04 LTS
  • 您需要软件包的“-dev”变体。因此,您需要 apt-get "libxml2-dev" 和 "libxslt-dev" 再试一次。
  • 谢谢,成功了!你会编辑一下你的答案以包含解决方案吗,我会接受它:)
猜你喜欢
  • 2018-01-10
  • 1970-01-01
  • 2018-03-21
  • 2015-08-17
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 2011-05-01
  • 2010-12-04
相关资源
最近更新 更多