Как установить пакеты с помощью 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