Вот проблема
У меня есть требования.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. Так что пошло не так?
Я прочитал выше, понимаю, что это старый вопрос, но он полностью не решен и все еще находится на вершине моих результатов поиска в Google, так что вот ответ, который работает для всех:
pip install -r /path/to/requirements.txt
Это работает для меня
$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages
--no-index
- игнорировать индекс пакета (вместо этого просматривайте только URL-адреса --find-links
).
-f, --find-links < URL >
- Если URL-адрес или путь к html-файлу, то проанализируйте ссылки на архивы.
Если локальный путь или URL-адрес file: //
является каталогом, найдите архивы в списке каталогов.
Для virtualenv установить все файлы в файл essions.txt.
pip install -r essiments.txt
в вашей оболочкеУ меня была похожая проблема. Я попробовал это:
pip install -U -r requirements.txt
Но проблема продолжалась. Я понял, что некоторые из общих библиотек для разработки были пропущены.
sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk
Я не знаю, поможет ли это вам.
pip install -r requirements.txt
Для получения более подробной информации, пожалуйста, проверьте опцию помощи.
pip install --help
Мы можем найти опцию '-r'
-r, --requirement < file > Установите из данного файла требований. Эта опция может быть используется несколько раз.
Дополнительная информация о некоторых часто используемых параметрах установки pip: (Это опция справки в команде установки pip)
Также выше полный набор опций. Пожалуйста, используйте pip install --help для полного списка вариантов.
Часто вам понадобится быстрая установка из локальных архивов, без проверки PyPI
Сначала загрузите архивы, которые соответствуют вашим требованиям:
$ pip install --download <DIR> -r requirements.txt
Затем установите –find-links
и –no-index
:
$ pip install --no-index --find-links=[file://]<DIR> -r requirements.txt
Краткий ответ
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
Я работаю со многими системами, которые были испорчены разработчиками «следуя указаниям, которые они нашли в Интернете». Чрезвычайно распространено, что ваш 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:« Если вы не сломали его и можете обойти его, не пытайтесь это исправить.«
Установка файла essions.txt в виртуальной среде с помощью python 3:
У меня была такая же проблема. Я пытался установить файл essions.txt в виртуальной среде. Я нашел решение.
Первоначально я создал свою виртуальную среду таким образом:
virtualenv -p python3 myenv
Активируйте среду, используя:
source myenv/bin/activate
Теперь я установил essions.txt, используя:
pip3 install -r requirements.txt
Установка прошла успешно, и я смог импортировать модули.
попробуй это
python -m pip install -r requirements.txt
прежде всего создать виртуальную среду
в питоне 3.6
virtualenv --python=/usr/bin/python3.6 <path/to/new/virtualenv/>
в питоне 2.7
virtualenv --python=/usr/bin/python2.7 <path/to/new/virtualenv/>
затем установите все пакеты, доступные в файле industriance.txt.
pip install -r <path/to/the/> requirement.txt
pip install --user -r requirements.txt
ИЛИ
pip3 install --user -r requirements.txt