Как установить пакеты с помощью pip в соответствии с файлом requirements.txt из локального каталога?

Вот проблема

У меня есть файл требований. выглядит так:

BeautifulSoup==3.2.0
Django==1.3
Fabric==1.2.0
Jinja2==2.5.5
PyYAML==3.09
Pygments==1.4
SQLAlchemy==0.7.1
South==0.7.3
amqplib==0.6.1
anyjson==0.3
...

У меня есть каталог локального архива, содержащий все пакеты + другие.

Я создал новый virtualenv с

bin/virtualenv testing

после его активации я попытался установить пакеты в соответствии с требованиями .txt из каталога локального архива.

source bin/activate
pip install -r /path/to/requirements.txt -f file:///path/to/archive/

Я получил некоторый вывод, который, кажется, указывает, что установка прекрасна.

Downloading/unpacking Fabric==1.2.0 (from -r ../testing/requirements.txt (line 3))
  Running setup.py egg_info for package Fabric
    warning: no previously-included files matching '*' found under directory 'docs/_build'
    warning: no files found matching 'fabfile.py'
Downloading/unpacking South==0.7.3 (from -r ../testing/requirements.txt (line 8))
  Running setup.py egg_info for package South
....

Но позже проверка показала, что ни один из пакетов не установлен правильно. Я не могу импортировать пакет, и ни один не найден в каталоге сайтов-пакетов моего virtualenv. Так что пошло не так?

Ответ 1

Это работает для меня:

$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages

--no-index - Игнорировать индекс пакета (только вместо URL --find-links).

-f, --find-links <URL> - Если URL или путь к html файлу, проанализируйте ссылки на архивы. Если локальный путь или file:// URL-адрес каталога, а затем найдите архивы в списке каталогов.

Ответ 2

Я прочитал выше, понимаем, что это старый вопрос, но он полностью не решен и все еще находится на вершине моих результатов поиска в Google, поэтому вот ответ, который работает для всех:

pip install -r /path/to/requirements.txt

Ответ 3

Чтобы virtualenv установил все файлы в файле requirements.txt.

  • cd в каталог, где находится файл требований .txt
  • активировать ваш virtualenv
  • run: pip install -r requirements.txt в вашей оболочке

Ответ 4

У меня была аналогичная проблема. Я пробовал это:

pip install -U -r requirements.txt 

(- U = обновление, если оно уже установлено)

Но проблема продолжалась. Я понял, что некоторые из общих библиотек для разработки были пропущены.

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

Я не знаю, поможет ли это вам.

Ответ 5

pip install -r requirements.txt

Для получения дополнительной информации, пожалуйста, проверьте справку.

pip install --help

Мы можем найти опцию "-r"

-r, - -r equirement Установить из данного файла требований. Этот параметр можно использовать несколько раз.

Дополнительная информация о некоторых часто используемых параметрах установки pip: (Это вспомогательная опция для команды установки pip)

enter image description here

Также приведен полный набор опций. Для полного списка опций используйте pip install --help.

Ответ 6

Часто вам нужна быстрая установка из локальных архивов без проверки PyPI.

Сначала загрузите архивы, соответствующие вашим требованиям:

$ pip install --download <DIR> -r requirements.txt

Затем установите с помощью –find-links и –no-index:

$ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt

Ответ 7

Короткий ответ

pip install -r /path/to/requirements.txt

или в другой форме:

python -m pip install -r /path/to/requirements.txt

объяснение

Здесь -r короткая форма --requirement и просит pip установить из данного requirements файла.

pip начнет установку только после проверки доступности всех перечисленных элементов в файле requirements и не начнет установку, даже если одно requirement недоступно.

Одним из обходных путей для установки доступных пакетов является установка перечисленных пакетов по одному. Используйте следующую команду для этого. Появится предупреждение красного цвета, чтобы уведомить вас о недоступных пакетах.

cat requirements.txt | xargs -n 1 pip install

Чтобы игнорировать комментарии (строки, начинающиеся с #) и пустые строки, используйте:

cat requirements.txt | cut -f1 -d"#" | sed '/^\s*$/d' | xargs -n 1 pip install

Ответ 8

Я работаю с множеством систем, которые были отключены разработчиками "по следующим направлениям, которые они нашли в Интернете". Весьма распространено, что ваши pip и ваши python не смотрят на одни и те же пути/сайты-пакеты. По этой причине, когда я сталкиваюсь с нечетностью, я начинаю с этого:

$ python -c 'import sys; print(sys.path)'
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu',
'/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old',
'/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages',
'/usr/lib/python2.7/dist-packages']

$ pip --version
pip 9.0.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

Это счастливая система.

Ниже приведена несчастливая система. (Или, по крайней мере, это блаженно невежественная система, которая заставляет других быть недовольными.)

$ pip --version
pip 9.0.1 from /usr/local/lib/python3.6/site-packages (python 3.6)

$ python -c 'import sys; print(sys.path)'
['', '/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python27.zip',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-old',
'/usr/local/Cellar/python/2.7.13/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']

$ which pip pip2 pip3
/usr/local/bin/pip
/usr/local/bin/pip3

Это несчастливо, потому что pip есть (python3.6 и), используя /usr/local/lib/python3.6/site-packages, а python - (python2.7 и), используя /usr/local/lib/python2.7/site-packages

Когда я хочу убедиться, что устанавливаю требования к правильному питону, я делаю это:

$ which -a python python2 python3
/usr/local/bin/python
/usr/bin/python
/usr/local/bin/python2
/usr/local/bin/python3

$ /usr/bin/python -m pip install -r requirements.txt

Вы слышали: "Если он не сломался, не пытайтесь его исправить". Версия DevOps: "Если вы не сломали ее, и вы можете обойти ее, не пытайтесь ее исправить".

Ответ 9

Установка файла requirements.txt внутри виртуального env с помощью python 3:

Я была такая же проблема. Я пытался установить файл requirements.txt внутри виртуальной среды. Я нашел решение.

Первоначально я создал свой виртуальный env таким образом:

virtualenv -p python3 myenv

Активируйте среду, используя:

source myenv/bin/activate

Теперь я установил файл requirements.txt, используя:

pip3 install -r requirements.txt

Установка прошла успешно, и я смог импортировать модули.

Ответ 10

попробуй это

python -m pip install -r requirements.txt

Ответ 11

pip install --user -r requirements.txt 

ИЛИ

pip3 install --user -r requirements.txt 

Ответ 12

pip3 install -r needs.txt

Ответ 13

Если вы находитесь в папке, где завершается работа с файлом require.txt, просто запустите приведенную ниже команду:\$ pip install -r needs.txt

Ответ 14

прежде всего, создать виртуальную среду

в питоне 3.6

virtualenv --python=/usr/bin/python3.6 <path/to/new/virtualenv/>

в Python 2.7

virtualenv --python=/usr/bin/python2.7 <path/to/new/virtualenv/>

затем установите все пакеты, доступные в файле require.txt.

pip install -r <path/to/the/> requirement.txt