Как активировать virtualenv?


236

Я прошел через поиск, безуспешно пробовал разные варианты и провел несколько дней на нем, сводя меня с ума.

Работа на Red Hat Linux с Python 2.5.2 Начала использовать последнюю версию Virtualenv, но не смогла активировать ее, я нашла где-то подсказку о необходимости более ранней версии, поэтому я использовала Virtualenv 1.6.4, так как она должна работать с Python 2.6.

Кажется, чтобы установить виртуальную среду нормально

[necrailk@server6 ~]$ python virtualenv-1.6.4/virtualenv.py virtual
New python executable in virtual/bin/python
Installing setuptools............done.
Installing pip...............done.

Окружающая среда выглядит хорошо

[necrailk@server6 ~]$ cd virtual
[necrailk@server6 ~/virtual]$ dir
bin  include  lib

Попытка активировать

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

Проверил chmod

[necrailk@server6 ~/virtual]$ cd bin
[necrailk@server6 bin]$ ls -l
total 3160
-rw-r--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r-

Проблема, поэтому я изменил это

[necrailk@server6 bin]$ ls -l
total 3160
-rwxr--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r--    1 necrailk biz12        1005 Jan 30 11:38 activate_this.py
-rwxr-xr-x    1 necrailk biz

Попробуй еще activateраз

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

Все еще нет радости ...


6
Вы пробовали "источник ~ / виртуальный / bin / активировать"?
Ммбриан

4
Из директории вашей среды делайте . bin/activateи все должно работать нормально.
dansalmo

1
Я думаю, что вам просто нужно было использовать sourceкоманду, т.е.source bin/activate
Hack-R

1
Я думаю , что вы должны сделать это из каталога virtualenv так первый cd ~/.virtualenvs/*environmentname*затемsource ~/.virtual/bin/activate
11m0

Ответы:


311

Вот мой рабочий процесс после создания папки и cdвставления в нее:

$ virtualenv venv --distribute
New python executable in venv/bin/python
Installing distribute.........done.
Installing pip................done.
$ source venv/bin/activate
(venv)$ python

4
хорошо, попробовал это не радость [necrailk @ server6 ~ / virtual] $ cd [necrailk @ server6 ~] $ $ source virtual / bin / activ source: неопределенная переменная. [necrailk @ server6 ~] $ sh virtual / bin / activ [necrailk @ server6 ~] $
Ларри

8
Не вводите $символ, который II выглядит , как вы сделали здесь: [necrailk@server6 ~]$ $source. $используется для обозначения командной строки
Джастин Гаррик

3
По-прежнему получаю ошибку плохо размещенный () ... что делать?

2
та же ошибка здесь :( user @ mintdesk ~ / python_v $ venv / bin / активировать bash: venv / bin / активировать: разрешение отклонено
Руи Лима

1
Альтернативой постоянному вводу 'source' является использование '.':$ . venv/bin/activate
karwag

89

Вы забыли сделать, source bin/activateгде источник является исполняемым именем. Поначалу меня тоже поразило несколько раз, легко подумать, что руководство говорит «выполнить это из корня папки окружения».

Не нужно делать activateисполняемый через chmod.


4
ОП набрано . bin/activate. Обратите внимание ., что является синонимом source.
Томас,

1
"источник - имя исполняемого файла" ... какой исполняемый файл? cmd.exe? powershell.exe?
StingyJack

1
Я пытаюсь активировать среду из cron, и она не будет работать без исполнимости (chmod 755).
Тахлор

70

Ты можешь сделать

source ./python_env/bin/activate

или просто зайдите в каталог

cd /python_env/bin/

а потом

source ./activate

Удачи.


28

Перейдите в путь к среде, перейдите в папку bin. В этот момент, когда вы используете команду ls, вы должны увидеть файл «activ».

сейчас наберите

source activate

23

Перейти в каталог проекта. В моем случае microblogэто каталог проекта фляги, а под microblogкаталогом должны быть appи venvпапки. затем запустите следующую команду: Это одна из тех, что работали для меня в Ubuntu.

source venv/bin/activate

введите описание изображения здесь


17

Проблема там в /bin/.команде. С тех пор это действительно странно. всегда должна быть ссылка на каталог, в котором он находится. (Честно говоря, если .это не странный псевдоним или функция, я даже не понимаю, как это возможно.) Также немного необычно, что ваша оболочка не имеет . встроенной функцииsource .

Одним из быстрых решений было бы просто запустить virtualenv в другой оболочке. (Очевидным вторым преимуществом является то, что вместо того, чтобы иметь возможность, deactivateвы можете просто exit.)

/bin/bash --rcfile bin/activate

Если ваша оболочка поддерживает это, у вас также может быть нестандартная sourceкоманда, которая должна делать то же самое, что и ., но может не существовать. (В общем, вы должны попытаться выяснить, почему ваше окружение странное или в будущем это снова вызовет у вас боль.)

Кстати, вам не нужны chmod +xэти файлы. Файлы должны быть исполняемыми, только если вы хотите выполнить их напрямую . В этом случае вы пытаетесь их запустить ., поэтому им это не нужно.


2
Кроме того, вы должны источник bin/activate, а не .bin/activate. Может даже работать с .тогдашним ...
krlmlr

@krlmlr Правда, я предположил, что это опечатка, так как в следующей строке он cdв bin.
Кодзиро

1
Привет [necrailk @ server6 ~ / virtual] $ source bin / активации Плохо размещены (). [necrailk @ server6 ~ / virtual] $
Ларри

2
Коржиро - вы были правы - мне нужно было выяснить, почему среда была странной - это оказалось нестандартной реализацией bash - переключение на стандартный bash решило все проблемы
Ларри

@larry рад, что это сработало: не забудьте пометить ответ как правильный.
Кодзиро

17

$ mkdir <YOURPROJECT> Создать новый проект

$ cd <YOURPROJECT> Изменить каталог на этот проект

$ virtualenv <NEWVIRTUALENV> Создание нового virtualenv

$ source <NEWVIRTUALENV>/bin/activate Активация этого нового virtualenv



9

Для Windows Вы можете выполнить как:

Чтобы создать виртуальный env как: virtualenv envName –python = python.exe (если не создается переменная среды)

Чтобы активировать виртуальный env:> \ path \ to \ envName \ Scripts \ activ

Чтобы деактивировать виртуальную среду:> \ path \ to \ env \ Scripts \ deactivate

Он отлично работает на новой версии Python.


Чтобы добавить поясняющие детали к этому: как только вы создадите свою виртуальную среду с помощью virtualenv venv , затем вручную перейдите в папку «Сценарии», которая была создана просто для просмотра файлов, вы увидите некоторые файлы активации. Так вот где мы активируем его для Windows. Так что cdв вашей папке Scripts и введите . activateв командной строке (не забудьте указать пробел после точки). Вы заметите свой путь в изменениях командной строки, добавив (venv) в начало вашего пути. Это значит, что теперь он активирован.
Azurespot

6
source virtualen_name/bin/activate

код


4
Этот ответ уже предоставлен (с дополнительной информацией) в существующих ответах. При ответе на старые вопросы с ответами, пожалуйста, убедитесь, что ваш ответ вносит что-то новое или имеет более высокое качество по сравнению с существующими ответами.
Марк Роттвил

4

Я бы также порекомендовал virtualenvwrapper. Это творит чудеса для меня и как у меня всегда есть проблемы с активацией. http://virtualenvwrapper.readthedocs.org/en/latest/


Привет источник и. (точка) кажутся взаимозаменяемыми necrailk @ server6 ~ / virtual] $ source bin / активации Плохо размещены (). это не похоже на работу
Ларри

Разрешение моего бина: drwxrwxr-x 2
Эрика Эрика

согласно документации virtuallenvwrapper в настоящее время не тестируется на python2.5 так не удобно добавлять к моей возможной problems- но благодаря
Ларри

Просто сводка новостей. обнаружил, что мой хост использует нестандартную оболочку. Когда сменил на нормальный Bash все заработало как надо. теперь отображает виртуальный env в приглашении и все пути изменяются в соответствии с lt. Большое спасибо за помощь и предложения.
Ларри

3

Создайте свою собственную виртуальную среду Python под названием <Your Env _name >:. Я дал это VE.

git clone https://github.com/pypa/virtualenv.git
python virtualenv.py VE

Чтобы активировать новую виртуальную среду, запустите ( обратите внимание, что ее ./здесь нет ):

. VE/bin/activate

Пример вывода ( примечание изменено ):

(VE)c34299@a200dblr$

После настройки виртуальной среды вы можете удалить Virtualenvрепо.


2
Не стоит проверять основную ветку virtualenv и ожидать, что она действительно сработает. Вместо этого используйте помеченную версию.
Джон Брингхерст

3

На Mac измените оболочку на BASH (учтите, что виртуальная среда работает только в оболочке bash)

[user@host tools]$. venv/bin/activate 

.: Command not found.

[user@host tools]$source venv/bin/activate

Badly placed ()'s.

[user@host tools]$bash

bash-3.2$ source venv/bin/activate

(venv) bash-3.2$ 

Бинго, это сработало. Смотри, подсказка изменена.

На Ubuntu:

user@local_host:~/tools$ source toolsenv/bin/activate

(toolsenv) user@local_host~/tools$ 

Примечание: подсказка изменена


2

У меня были проблемы с запуском source / bin / activ, тогда я понял, что в качестве терминальной оболочки я использовал tcsh вместо bash. как только я переключился, я смог активировать venv.


1

Windows 10

В Windows создаются эти каталоги:

Каталоги виртуальной среды Windows 10

Активировать виртуальную среду в Windows 10.

down\scripts\activate

Каталог \ scripts содержит файл активации.

Linux Ubuntu

В Ubuntu создаются следующие каталоги:

Каталоги виртуальной среды Linux Ubuntu

Активировать виртуальную среду в Linux Ubuntu.

source ./bin/activate

Каталог / bin содержит файл активации.


Виртуальная среда копируется из Windows в Linux Ubuntu и наоборот

Если папка виртуальной среды скопирована из Windows в Linux Ubuntu, то по каталогам:

source ./down/Scripts/activate


0

Возможно, немного поздно, чтобы опубликовать мой ответ здесь, но все же я отправлю, это может кому-то пригодиться,

Я столкнулся с той же проблемой,

Основная причина в том, что я создал virtualenv как «root» пользователь, но позже пытался активировать его, используя другого пользователя.

chmod не будет работать, так как вы не являетесь владельцем файла, поэтому альтернативой является использование chown (для изменения владельца)

Например:

Если у вас есть свой virtualenv, созданный в / home / abc / ENV

Затем CD в / home / abc

и выполните команду: chown -Rv [пользователь-кому-вы-хотите-изменить-владельца] [папка / имя файла, чье владение необходимо изменить]

В этом примере команды будут такими: chown -Rv abc ENV

После успешного изменения владельца вы можете просто запустить источник /ENV/bin/./activate, и вы сможете правильно активировать virtualenv.


0

1- Откройте PowerShell и перейдите в папку своего приложения. 2- Войдите в свою папку virtualenv, например: cd. \ Venv \ Scripts \ 3-, по типу active virtualenv. \ Activ

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.