Я пытаюсь понять, как правильно использовать python3.8 -m pip install
для установки требований из requirements.txt
И одновременно устанавливать определенные пакеты из локальной файловой системы, а не из репозитория. У нас есть несколько разных частных репозиториев, над которыми нам, возможно, придется работать одновременно для более крупных изменений.
Я обнаружил, что могу сделать это как две отдельные команды. Сначала python3.8 -m pip install -r requirements.txt --index-url https://private/repo/dependency/simple
, а потом python3.8 -m pip install path/to/dependency
. Но я бы хотел объединить их в одну команду, если это возможно. Это позволит избежать необходимости генерировать токены доступа и управлять ими как часть URL-адреса индекса для каждого разработчика.
🤔 А знаете ли вы, что...
С Python можно создавать веб-скраперы для извлечения данных из веб-сайтов.
Я думаю, вы можете попробовать напрямую указать свой путь в своем requirements.txt
так:
# Packages
package1==X.0.0
package2==X.0.0
# Local Packages
/path/to/local/dependency1
Возможно, вы сможете создать новый requirements.txt
и запустить его в той же строке:
В PowerShell:
cat requirements.txt > myRequirements.txt
echo path/to/dependency >> myRequirements.txt
python3.8 -m pip install -r myRequirements.txt
В большинстве оболочек Unix что-то вроде
printf '%s\n' \
'-r requirements.txt' \
'path/to/dependency' >myRequirements.txt
pip install -r myRequirements.txt
Если вы настаиваете на создании однострочной строки, вы можете заменить каждую обратную косую черту ничем, а каждую оставшуюся новую строку - точкой с запятой ;
pip
позволяет вам указать несколько пакетов.
pip install path/to/local/package1 \
path/to/another/package2 \
-r requirements.txt
Если path/to/local/package1
переопределяет пакет, который также упоминается в requirements.txt
, Pip предпочтет пакет, указанный ранее в командной строке, а затем просто придет к выводу, что требование уже выполнено, как только он снова найдет его в requirements.txt
.