Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何正确使用pip安装--下载?_Python_Pip_Distribute - Fatal编程技术网

Python 如何正确使用pip安装--下载?

Python 如何正确使用pip安装--下载?,python,pip,distribute,Python,Pip,Distribute,我在Windows上安装了pip(与ActivePython捆绑)、Debian 7(通过sudo-apt-get-install-python-pip安装)和OSX 10.8(通过easy\u-install-pip安装) 我想在不安装的情况下下载mercurial软件包(只是.tar.gaz存档),因此我发布了以下有文档记录的命令: pip install --download=. mercurial 在Windows上它可以工作,但当前目录中不显示任何文件。在Debian和OSX上,它失

我在Windows上安装了
pip
(与
ActivePython
捆绑)、Debian 7(通过
sudo-apt-get-install-python-pip
安装)和OSX 10.8(通过
easy\u-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\u info
步骤,如果您的平台上的软件包可以使用该步骤。您可以从输出(或~/.pip/pip.log)中看到这一点:

Command python setup.py egg_info failed with error code 1 in /var/folders/fl/kgrflrj92pv1yjr_918x0t800000gq/T/pip-build/mercurial

无论该步骤成功与否,您最终仍然无法在站点包中安装任何内容。但是,除非成功,否则您可能无法在目标目录中安装tarball。(从一个非常快速的测试来看,Python2.7.2下的1.2.1和1.4dev1都无法将tarball复制到目标,如果tarball失败,而3.3.0下的1.4dev1则以其他方式复制它……但这可能会产生误导;差异可能与tarball是否已经在下载缓存中或其他内容有关……)

作为旁注:在干净的OS X 10.8机器上,如果您从现有的Python 2.7.2开始,
sudo easy\u install pip
,然后
sudo pip install mercurial
pip install--download=.mercurial
,它会成功。您是否有第二个Python 2.7安装与苹果的相冲突?我刚刚清理安装的OSX 10.8.3在我的一台Mac电脑上。发布
sudo easy\u install pip
,然后是
pip install--download=.mercurial
以提到的错误结束。但文件实际上是下载的!它不是在Debian 7/Ubuntu上下载的(只有错误,没有文件)。下载(有错误)在Windows 8上使用ActivePython,在OSX上使用内置python。不幸的是,我在目标目录中没有任何东西,不管我是使用“,”还是将其指定为完整路径。可能会有什么问题?@EyeofHell:pip的版本是什么?@EyeofHell:Hold稍等一下……你说得对,它看起来甚至像python上最新的
pip
2.7.2只有在
egg_info
成功的情况下,才会将tarball复制到目标目录中。但是Python 3.3.0的相同
pip
仍然会复制tarball。这似乎是错误的;您可能需要进行更多的测试来验证这一点并提交一个bug。同时,让我编辑答案。@EyeofHell:作为一种解决方法,您可以始终传递
--下载缓存=.
也一样。您应该会在输出中看到类似于将下载存储在缓存中的
内容,网址为./http%3A%2F%2Fmercurial.selenic.com%2Frelease%2Fmercurial-2.6.1.tar.gz
,即使您没有,也应该很容易找到文件。“--download cache”仅在与“--download”(Windows 8,OSX 10.8.3)一起工作时才有效.在Debian和Ubuntu上,我只得到了一个错误,并且没有使用'--download'或'--download cache'下载任何文件。
Command python setup.py egg_info failed with error code 1 in /var/folders/fl/kgrflrj92pv1yjr_918x0t800000gq/T/pip-build/mercurial