pip download - build либо удаляет, либо перемещает пакеты после завершения загрузки - PullRequest
0 голосов
/ 29 января 2020

У меня проблема с pip, когда pip install не может загрузить пакеты из-за ошибки без пробела. Пока я исследую это, я пытаюсь настроить обход, загружая пакеты в заданную папку, а затем выполняю автономную установку, используя:

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

В своем исследовании я обнаружил, что pip использует папка root /tmp по умолчанию и что она удаляет ее после успешной установки. Поэтому я установил go в другую папку /tmp в каталоге /profile1. Кажется, что команда работает нормально, но когда я смотрю на каталог, он пуст. Я исключил, что пакеты не загружаются, запустив его снова, на этот раз открывая новый терминал. Я перешел на /profile1/tmp и использовал ls во время загрузки тензорного потока. Загруженный пакет и его зависимые пакеты - однако они исчезли после завершения загрузки (для подтверждения использовали ls -ltra). Я полагаю, что они перемещаются, потому что когда я использовал df -h /home, было увеличено используемое пространство. Мне нужно иметь возможность хранить их в папке / tmp для установки. Любая помощь будет принята с благодарностью.

РЕДАКТИРОВАТЬ: я пытался использовать ответ @ sinoro c, и хотя он работал для загрузки, он все еще падает с ошибкой без пробела:

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 ГБ в файловой системе. Есть ли что-нибудь еще, что я могу сделать в отношении исправления?

РЕДАКТИРОВАТЬ 2: Я смог подтвердить, что это только с пипс; Я смог использовать conda install, чтобы получить тензорный поток, но не пункт.

1 Ответ

1 голос
/ 29 января 2020

Похоже, вы ищете вариант --dest <dir>.

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

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

...