Как сохранить параметры установки pip в файле требований, сделанном pip freeze?
Я использую файл требований пипса для ведения списка зависимостей для моих проектов.
Теперь мне нужно установить библиотеку, используя pip install --install-option='some-setup.py.option'
но pip freeze
не записывает эти параметры в свой вывод, который я сохраняю в своем проекте requirements.txt
, Это вызывает проблемы, потому что простой pip install -r requirements.txt
на новой машине устанавливаются все зависимости без предоставления необходимых аргументов для этой библиотеки, и я потерял простую операцию туда и обратно.
Итак, мой вопрос из двух частей:
- Есть ли способ как-то сохранить параметры установки pip в выводе pip freeze?
- Если нет, есть ли способ вручную взломать файл требований, чтобы добавить опцию установки? Я в порядке с потерей туда и обратно характера
pip freeze
если мне нужно, и переход на ручное обслуживание файла требований. Я проверил документацию, но не увидел ничего, чтобы помочь.
Ненужные, но, возможно, интересные детали следуют
Я хочу установить pymongo, но без сборки расширения C, чтобы я мог использовать его асинхронно в приложении на основе eventlet.
Установите по желанию и создайте файл require.txt:
(test)day@office:~/test$ pip install pymongo --install-option='--no_ext'
Downloading/unpacking pymongo
Downloading pymongo-2.1.1.tar.gz (199Kb): 199Kb downloaded
Running setup.py egg_info for package pymongo
Installing collected packages: pymongo
Running setup.py install for pymongo
Successfully installed pymongo
Cleaning up...
(test)day@office:~/test$ pip freeze > requirements.txt
(test)day@office:~/test$ cat requirements.txt
bottle==0.10.7
distribute==0.6.10
eventlet==0.9.16
greenlet==0.3.3
lxml==2.3.3
pymongo==2.1.1
simplejson==2.3.2
wsgiref==0.1.2
В новом virtualenv попробуйте установить тот же проект из requirements.txt
, pip создает расширение C для pymongo :(
(test2)day@office:~/test2$ pip install -r requirements.txt
...
Downloading/unpacking pymongo==2.1.1 (from -r requirements.txt (line 6))
Downloading pymongo-2.1.1.tar.gz (199Kb): 199Kb downloaded
Running setup.py egg_info for package pymongo
Installing collected packages: pymongo
Running setup.py install for pymongo
building 'bson._cbson' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Ibson -I/usr/include/python2.6 -c bson/_cbsonmodule.c -o build/temp.linux-i686-2.6/bson/_cbsonmodule.o
...
Successfully installed pymongo
Cleaning up...
Обновление Выпуск 271 был открыт против пипса в апреле 2011 года с просьбой указать конкретную линию --install-option
в требованиях. текст. Пожалуйста, проголосуйте за проблему, если у вас есть такая же проблема.
2 ответа
Начиная с версии 7.0 (выпущена 2015-05-21), pip может анализировать --install-option
а также --global-option
из файлов требований. Теперь должно быть возможно иметь следующую строку в вашем requirements.txt
:
pymongo==2.1.1 --install-option='--no_ext'
Возможно, это слишком наивно, но если вы хорошо справляетесь с управлением требованиями и соответствующими опциями вручную - почему бы не сохранить их в виде небольшого сценария оболочки, включающего все заклинания в пипсах? Просто обходной путь, пока не прослушан запрос функции:)