我在Windows上安装了pip
(与ActivePython
捆绑在一起),Debian 7(通过sudo apt-get install python-pip
安装)和OSX 10.8(通过easy_install pip
安装)。
我想下载mercurial
包而不安装它(只是一个.tar.gaz
存档),所以我发出以下文档命令:
pip install --download=. mercurial
在Windows上,它工作,但没有文件出现在当前目录中。在Debian和OSX上,它像这样失败:
Downloading/unpacking mercurial
Running setup.py egg_info for package mercurial
...
lots of text, complains about no headers to compile
我做错了什么?我确信pip
实际上不应该用--download
命令运行,但似乎在Debian和OSX上它都试图在下载后安装包:(.
它实际上并不构建和安装包,但它确实执行egg_info
步骤,如果您的平台上的包可用的话。您可以从您的输出(或从~/.pip/pip.log)中看到这一点:
Running setup.py egg_info for package mercurial
...
Command python setup.py egg_info failed with error code 1 in /var/folders/fl/kgrflrj92pv1yjr_918x0t800000gq/T/pip-build/mercurial
无论该步骤成功或失败,您最终仍然没有安装到站点包中。但是,除非它成功,否则您可能不会在目标目录中得到tarball。(从一个非常快速的测试来看,Python 2.7.2下的1.2.1和1.4dev1如果失败,看起来都无法将tarball复制到目标,而3.3.0下的1.4dev1则以其他方式复制……但这可能会误导;这可能与tarball是否已经在下载缓存或其他东西有关…)