2014-02-03 4 views
0

Я пишу скрипт bash для установки только что установленной Ubuntu VM в качестве машины для разработки и тестирования с Django и gUnicorn в виртуальной среде. Он успешно устанавливает пакеты с apt-get, но затем, когда я запускаю pip рекурсивно против файла requirements.txt, он не может найти ни один из пакетов. Я попытался вручную активировать виртуальную среду и запустить pip install == Это сработало нормально, и пип начал говорить, что Django уже установлен, но затем не удалось с другими. Я попробовал --pre и --no-index безрезультатно. Однако -no-index избавляет от невероятно огромного (3000+ строк) Traceback, который он печатал.pip install не может найти пакет - ушел из PyPi

Вот сценарий:

# VARIABLES 
# none for now 

# COLORED OUTPUT 
function echo_green { 
    tput setaf 2 
    echo $1 
    tput sgr0 
} 

function echo_yellow { 
    tput setaf 3 
    echo $1 
    tput sgr0 
} 
function echo_red { 
    tput setaf 1 
    echo "Important Note: $1" 
    tput sgr0 
} 
function echo_blue { 
    tput setaf 4 
    echo $1 
    tput sgr0 
} 

# TODO: Create output like script <filename> ran on <date> 
# TODO: Have output go to file as well as stdout 

# GLOBAL PACKAGES 
echo_green 'Doing System level installs' 
echo_green 'Using sudo' 
# ubuntu and debian have apt-get 
echo_green 'vim' 
sudo apt-get install vim 
echo_green 'tmux' 
sudo apt-get install tmux 
echo_green 'pip' 
sudo apt-get install python-pip 
echo_green 'virtualenv' 
sudo easy_install virtualenv 
echo_green 'git' 
sudo apt-get install git 

# CLONE REPO 
echo_yellow "Working as user: `whoami`" 
echo_yellow "working in `pwd`" 
echo_yellow "cloning Services repo" 
git clone <our repo> 

# CREATE VIRTUAL ENVIRONMENT 
# hard coding file names to simplify discussion between devs referring to certain directories and files 
mkdir Environment 
echo 'Environment/' >> .gitignore 
virtualenv Environment 
echo_blue "Activating virtual environment" 
source ./Environment/bin/activate 
echo_green 'Installing distribute in virtual env' 
sudo easy_install 'distribute==0.6.28' 
echo_yellow "If pip tries to install a specific version of something, this can be a mess if it's already installed. Use pip uninstall first. Do not install with anything but pip if possible. Use pip in virtual env. Anything else has potential for mess making and bug hiding." 
# TODO: make sure python is v 2.7.5 
# Note the lack of sudo. This is related to virtualenv. We're not doing this globally. 
# pip install --upgrade pip 
easy_install --upgrade pip 
pip install -r ./Services/requirements.txt --pre # --no-index might solve some errors 

# mysqlclient-dev 

# mysql server? 

# then put the dump into it 

Я получаю ошибку:

Использование /home/bret/Work/Environment/lib/python2.7/site-packages/pip-1.5 .2-py2.7.egg Обработка зависимостей для протокола Завершенные зависимости обработки для pip Игнорирование индексов: https://pypi.python.org/simple/ Требование уже выполнено (используйте --upgrade для обновления): Django == 1.5.1 в ./Environment/l ib/python2.7/site-packages (от -r ./Services/requirements.txt (строка 1)) Загрузка/распаковка Ткань == 1.7.0 (из -r ./Services/requirements.txt (строка 2)) Could не найти загрузок, которые удовлетворяют требованию Ткань == 1.7.0 (от -r ./Services/requirements.txt (строка 2)) Очистка ... Нет дистрибутивы вообще не найдены для Fabric == 1.7.0 (от -r ./Services/requirements.txt (строка 2)) Хранение журнала отладки для отказа в /home/bret/.pip/pip.log

пару ключей:

pip install "Django==1.5.1" 
pip install "distribute==0.6.28" 
cat Services/requirements.txt | sed '/distribute/d' | sed '/distribute/d' > .requirements_tmp.txt 
pip install -r .requirements_tmp.txt --use-mirrors --pre --no-index #might solve some errors 
rm .requirements_tmp.txt 

Это работает для пакетов, явно предоставляемых собственной линией. Он использует sed, чтобы удалить их из временной копии требований, которые затем выполняются. По какой-то причине использование -r является causeing пип не найти ничего

Я уже пробовал флаги: --Система --no-индекс --use-зеркал

Я также попытался обновить и обновление Ubuntu

+0

Может йо сделать это немного более удобным для чтения? –

+0

Как насчет этого не читается? Вопрос, сценарий, ошибка? –

+0

Извините, вопрос не был для меня правильным. Сейчас он читает. –

ответ

0

Убедитесь, что

  • пакет на самом деле существует, и не удаляется (первое правило PyPi является то, что никогда не удалять пакеты). См. Простой индекс https://pypi.python.org/simple/

  • Нет общесистемного пакета, версия которого конфликтует с virtualenv без --no-site-packages.

  • Существует никаких проблем индивидуальной чувствительности с именем пакета

+0

Я попытался установить распространение системы в целом, чтобы попытаться преодолеть эти ошибки, но я получаю те же ошибки, что и до того, как я добавил эту строку. –

+0

Мне пришлось перекомпилировать мой недавний Python с libbz2-dev для поддержки сжатых выпусков пакетов bpp PyPI. – Pawamoy

Смежные вопросы