Установка Pip из репозитория git, ошибки из-за неправильных кавычек - PullRequest
1 голос
/ 30 апреля 2020

Описание проблемы

Используя Python 3.7.6 для Windows 10, я пытаюсь обновить пакет, установленный непосредственно из репозитория git:

pip install --upgrade git+https://url.of.my/py/package.git

Установка завершается неудачно:

...
error: file 'C:\Users\myuser\AppData\Local\Temp\pip-req-build-ip4k0pfs\bin\some-script' does not exist
...

Насколько я смог разобраться, по следующей причине: на ранней стадии pip вызывает

git clone -q https://url.of.my/py/package.git 'C:\Users\myuser\AppData\Local\Temp\pip-req-build-ip4k0pfs'

т.е. он извлекает хранилище во временный каталог. Тем не менее, каталог не создан, и источники не извлечены. Действительно, когда я запускаю команду в командной строке Windows (я также пробовал Git Bash и MSYS2 Bash, та же проблема), я получаю ошибку:

C:\Users\myuser>git clone -q https://url.of.my/py/package.git 'C:\Users\myuser\AppData\Local\Temp\pip-req-build-ip4k0pfs'
fatal: could not create leading directories of ''C:\Users\myuser\AppData\Local\Temp\pip-req-build-ip4k0pfs'': Invalid argument

Проблема заключается в кавычках single вокруг пути к временному каталогу. Если заменить их на двойные кавычки, ошибка исчезнет:

C:\Users\myuser>git clone -q https://url.of.my/py/package.git "C:\Users\myuser\AppData\Local\Temp\pip-req-build-ip4k0pfs"

Вопрос

Можно ли как-то сказать пипу использовать двойные вместо одинарных кавычек? Любые другие идеи о том, как преодолеть эту проблему?

Правки

  1. Тем временем я также пробовал Python 3.8.2 с пипом 20.1, и получил ту же ошибку

1 Ответ

2 голосов
/ 30 апреля 2020

Как и подозревал @ sinoro c, кавычки - или, скорее, тот факт, что записанная в журнал команда git не работает при непосредственном выполнении - были красной сельдью, и реальная проблема заключалась в том, что мой setup.py имел опечатка: список scripts включал файл с именем bin/some-script, который на самом деле назывался bin/some-script.py, и поэтому не мог быть найден.

...