【问题标题】:pip download --build either deletes or moves packages after download completespip download --build 下载完成后删除或移动包
【发布时间】:2020-05-15 05:42:02
【问题描述】:

当 pip install 由于没有空间错误而无法下载软件包时,我遇到了 pip 问题。当我对此进行调查时,我正在尝试通过将软件包下载到设置的文件夹中来设置解决方法,然后使用以下方法进行离线安装:

pip download --no-cache-dir tensorflow -b /home/profile1/tmp/

在我的研究中,我发现 pip 默认使用根目录 /tmp 文件夹,并且在安装成功后将其清除。因此,我将其设置为转到 /profile1 目录下的另一个 /tmp 文件夹。该命令似乎工作正常,但是当我查看目录时它是空的。我已经排除了软件包不会通过再次运行来下载,这次打开一个新终端。我导航到 /profile1/tmp 并在下载 tensorflow 时使用了 ls。下载的包及其依赖包 - 但是,一旦下载完成,它们就会消失(使用ls -ltra 确认)。我相信它们正在被移动,因为当我使用df -h /home 时,使用的空间增加了。我需要能够将它们保存在 /tmp 文件夹中以进行安装。任何帮助将不胜感激。

编辑: 我尝试使用@sinoroc 答案,虽然它适用于下载,但它仍然崩溃并出现无空间错误:

pip download --no-cache-dir tensorflow -d /home/profile1/tmp/

#downloads several packages
Traceback (most recent call last):
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/cli/base_command.py", line 186, in _main
    status = self.run(options, args)
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/commands/download.py", line 135, in run
    resolver.resolve(requirement_set)
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/legacy_resolve.py", line 177, in resolve
    discovered_reqs.extend(self._resolve_one(requirement_set, req))
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/legacy_resolve.py", line 333, in _resolve_one
    abstract_dist = self._get_abstract_dist_for(req_to_install)
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/legacy_resolve.py", line 282, in _get_abstract_dist_for
    abstract_dist = self.preparer.prepare_linked_requirement(req)
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 482, in prepare_linked_requirement
    hashes=hashes,
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 287, in unpack_url
    hashes=hashes,
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/operations/prepare.py", line 164, in unpack_http_url
    unpack_file(from_path, location, content_type)
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/utils/unpacking.py", line 252, in unpack_file
    flatten=not filename.endswith('.whl')
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/site-packages/pip/_internal/utils/unpacking.py", line 139, in unzip_file
    shutil.copyfileobj(fp, destfp)
  File "/home/profile1/anaconda3/envs/testinstall/lib/python3.6/shutil.py", line 82, in copyfileobj
    fdst.write(buf)
OSError: [Errno 28] No space left on device

在使用 `df -h /home' 时,我发现文件系统中还剩 20 GB。就补救而言,我还能做些什么吗?

编辑 2: 我能够确认这仅适用于 pip;我可以使用conda install 来获取 tensorflow,但不能使用 pip。

【问题讨论】:

  • 不要编辑您的问题以提出不同的问题,仅与原始问题松散相关。
  • 很抱歉。
  • 没问题,谢谢理解

标签: download pip installation anaconda


【解决方案1】:

看起来您正在寻找--dest <dir> 选项。

$ pip download --help
[...]
-d, --dest <dir>            Download packages into <dir>.

https://pip.pypa.io/en/stable/reference/pip_download/#cmdoption-d

【讨论】:

  • 虽然这可以下载 .whl 文件,但现在 pip 崩溃并出现无空间错误。我已经检查过,发现我的主文件系统中还剩下 20 GB,所以我不确定它为什么抱怨这个。
  • 好的,那么让我们接受这个答案并从一个新问题重新开始,对于第二个不同的问题,以保持事情干净并且易于浏览,以便下一个遇到相同原始问题的人。
猜你喜欢
  • 2021-12-08
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
  • 2012-01-21
  • 2021-09-04
  • 2020-05-11
  • 2021-03-28
  • 2016-03-09
相关资源
最近更新 更多