2012-06-20 2 views
0

Я устанавливаю virtualenv и, кажется, обращается к пакетам системных сайтов, прежде чем обращаться к локальным пакетам сайта. Ipython требуется для некоторых других программ, поэтому он автоматически устанавливается. Это произошло только недавно, и теперь он находит эту версию вместо той, которая найдена локально в среде.Создание виртуального виртуального python в Ubuntu 12.04 доступ к системным пакетам python перед локальными пакетами venv

Как сообщить среде использовать локальные пакеты в среде перед глобальными пакетами? Можете ли вы установить переменную Path для среды?

Завершено как ошибка с ранее установленным значением переменной PYTHON_PATH в .bashrc, так что это просматривалось в системных каталогах, прежде чем искать локально. Вид поражения цели virtual_env.

+0

Вы активировали virtualenv с помощью 'source/path_to_virtualenv/bin/activate'? – Enrico

+0

Используйте опцию -no-site-packages при установке –

+0

Вы имеете в виду эту проблему происходит внутри оболочки Ipython? Если это так, установите и используйте Ipython внутри virtualenv. – wrongite

ответ

0

Если вы используете дистрибутив + pip для управления зависимостями, просто запустите pip -l freeze > requirements.txt, это создаст список зависимостей всех ваших локальных пакетов. Затем удалите текущий virtualenv; перезапустите команду virtualenv и укажите опцию --no-site-packages. Активируйте новую среду и, наконец, pip install -r requirements.txt, чтобы загрузить все зависимости из файла требований.

+0

Если вы сделаете это, вам нужно убедиться, что у вас есть все требования к установке, установленные для python, и любые другие пакеты, которые вы, возможно, установили из вашего диспетчера пакетов. Например, если вы установили 'psycopg', вам нужно сначала« apt-get build-dep psycopg », прежде чем пытаться установить его в ваш virtualenv, иначе ваша установка завершится с ошибкой. –

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