Вызов правильного pip в среде pyvenv python3.4

#python #virtualenv

#python #virtualenv

Вопрос:

Я установил новую среду pyvenv со следующими командами:

 python3.4 -m venv env
source env/bin/activate
  

Однако, когда я вызываю which pip , я получаю следующее: /usr/bin/pip . По-видимому, все еще используется общесистемная установка pip. Если я посмотрю на документацию pyvenv, в ней указано следующее:

Изменено в версии 3.4: устанавливает pip по умолчанию, добавлены опции —without-pip и —copies

И это правильно, при попытке установить pip в моей активированной среде я получаю следующее:

Требования уже обновлены: pip в ./env/local /lib /python3 .4 / dist-пакетах

Как мне убедиться, что при вызове pip в моей активированной среде вызывается pyvenv pip?

Комментарии:

1. @CollinAnderson Это не дает никакой реакции.

Ответ №1:

Похоже, что вы (и я в моем предыдущем ответе) наблюдали последствия ошибки. Кажется, все работает в более новых версиях pyvenv-3.4.

 $ pwd
~/test
$ pyvenv-3.4 myenv
$ source myenv/bin/activate
(myenv)$ which pip
~/test/myenv/bin/pip
  

Ответ №2:

У меня возникла аналогичная проблема, я задал свой веб-хостинг (WebFaction) и получил отличный ответ. Страница понимания pyvenv и pip в виртуальных средах с python 3.4 и выше кратко изложена ниже.

Кажется, вам не нужно беспокоиться о том, какой pip использует ваша виртуальная среда. Пока ваша виртуальная среда активна, в ней будут установлены любые пакеты, независимо от того, какой pip используется.

Одна особенность виртуальных сред Python 3.4 заключается в том, что если пакет не поддерживает новый формат пакета «колесо» Python, пакет не будет установлен внутри каталога виртуальной среды. Однако он все равно будет поддерживать соединение с виртуальной средой.

Из-за этой странности я решил просто использовать virtualenv вместо pyvenv-3.4, и все работало так, как ожидалось.

Ответ №3:

Проблема была исправлена в Ubuntu 14.10.

И если вы установили python 3.4 с помощью следующей команды на Centos6.

yum install http://dl.iuscommunity.org/pub/ius/stable/CentOS/6/x86_64/python34u-3.4.2-1.ius.centos6.x86_64.rpm

Вы должны повторно открыть новый терминал (или повторно войти в свою систему).

У меня это работает. Удачи.