Вы создали и активировали virtualenv, а затем проигнорировали его , потому что вы использовали sudo
:
$ sudo pip install flask
Активация virtualenv просто устанавливает переменную PATH
для установкикоманды в каталоге bin
в первую очередь при запуске pip
, python
и т. д.
Но когда вы используете sudo
, вы создаете новую вложенную оболочку, запущенную под пользователем root
, иЗатем вы фактически указываете ОС: не использовать текущую конфигурацию оболочки .И команда pip
, найденная при выполнении в качестве пользователя root
, отличается от команды, настроенной для вашего virtualenv.
Далее, вы не захотите устанавливать пакетыв любом случае, как корень в вашем virtualenv.Вместо этого установите их в качестве текущего пользователя.
Просто отбросьте sudo
:
$ pip install flask
или даже напрямую обратитесь к команде bin/pip
:
$ bin/pip install flask
весь смысл virtualenv состоит в том, чтобы предоставить вам изолированную среду Python, которая является вашей собственной, где вы можете добавлять и удалять пакеты по мере необходимости, без необходимости root-доступа.