У меня есть скрипт, который выполняет
mkvirtualenv foo
pip install -r foo/requirements.txt || abort_with_error_message
pip freeze
В установке pip говорится:
Successfully installed <List of packages>
Где список пакетов включает все в файл require.txt.Но pip freeze
перечисляет меньше пакетов.В частности, gevent-1.4.0
находится в требованиях и «успешно установлен», но не в «заморозке», ~/.virualenvs/foo/*/dist-packages
или вещах, которые я могу импортировать.Там ничего нет.
Добавление -vvv к установке pip ничего полезного не дает.
В моей среде должно быть что-то действительно странное, чтобы вызвать это, но я не знаю, где искать,Что может заставить pip объявить об успешной установке пакетов, которые он фактически никогда не устанавливал?
Изменить для добавления:
Я могу решить эту проблему, используя
source /usr/local/bin/virtualenvwrapper.sh
вместо
source ~/.bashrc
или
#!/bin/bash -i
в сценарии.(Мой .bashrc содержит строку источника virtualenvwrapper.)
Я в тупике, почему это важно.Единственное, что делает мой .bashrc, это установить некоторые несвязанные переменные, добавить несколько вещей в путь и вызвать / etc / bashrc (AWS GNU / Linux, разветвленный из CentOS).