如何激活virtualenv?


234

我一直在搜索,尝试了各种替代方法都没有成功,现在花了几天时间-令我发疯。

在具有Python 2.5.2的Red Hat Linux上运行开始使用最新的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
您是否尝试过“来源〜/ virtual / bin / activate”?
mmbrian

4
从您的环境目录中执行. bin/activate,它应该可以正常工作。
dansalmo 2014年

1
我认为您只需要使用source命令,即source bin/activate
Hack-R

1
我认为您必须从virtualenv目录中执行此操作,cd ~/.virtualenvs/*environmentname*然后首先source ~/.virtual/bin/activate
11m0

Answers:


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〜] $ [necrailk @ server6〜] $ sh virtual / bin / activate [necrailk @ server6〜] $
拉里

8
请勿键入$字符,ii看起来就像您在此处所做的一样[necrailk@server6 ~]$ $source$用于指示命令提示符。
贾斯汀·加里克

3
仍在错误地放置()的错误...该怎么办?

2
同样的错误在这里:( user @ mintdesk〜/ python_v $ venv / bin / activate bash:venv / bin / activate:权限被拒绝
Rui Lima

1
始终输入'source'的一种替代方法是使用'。':$ . venv/bin/activate
karwag 2015年

89

您忘了source bin/activate在source是可执行文件名称的地方做。同样也打了我几次,容易想到手册说的是“从环境文件夹的根目录执行此操作”。

无需activate通过执行chmod


4
OP类型. bin/activate。请注意.,是的同义词source
托马斯

1
“源是可执行文件名称” ...哪个可执行文件?cmd.exepowershell.exe
StingyJack

1
我正在尝试从cron激活一个环境,如果没有可执行文件,它将无法工作(chmod 755)。
塔罗尔

70

你可以做

source ./python_env/bin/activate

或只是转到目录

cd /python_env/bin/

然后

source ./activate

祝好运。


27

将CD复制到环境路径,然后转到bin文件夹。此时,当您使用ls命令时,应该会看到“激活”文件。

现在输入

source activate

23

转到项目目录。在我的情况下microblog是flask项目目录,在microblog目录下应该有appvenv文件夹。然后运行以下命令,这是在Ubuntu中为我工作的命令。

source venv/bin/activate

在此处输入图片说明


17

问题出在/bin/.命令。从那以来,那真的很奇怪。应该始终是它所在目录的链接。(老实说,除非.是一个奇怪的别名或函数,否则我什至不知道这是不可能的。)shell没有. 内置的forsource也是有点不寻常

一种快速的解决方法是仅在另一个Shell中运行virtualenv。(一个明显的第二个优势是,deactivate您不必仅仅拥有即可exit。)

/bin/bash --rcfile bin/activate

如果您的外壳支持它,则您可能还具有非标准source命令,该命令应与做相同的事情.,但可能不存在。(总而言之,您应该尝试弄清楚为什么您的环境很奇怪,否则将来会再次让您痛苦。)

顺便说一句,您不需要chmod +x这些文件。仅当您要直接执行文件时,才需要文件是可执行文件。在这种情况下,您尝试从中启动它们.,因此他们不需要它。


2
另外,您应提供来源bin/activate,而不是.bin/activate。甚至可以与.当时的... 一起工作
krlmlr

@krlmlr是的,我认为那是一个错字,因为在下一行中他cdbin
kojiro 2013年

1
hi [necrailk @ server6〜/ virtual] $源bin / activate错误地放置()。[necrailk @ server6〜/ virtual] $
拉里

2
korjiro-您是正确的-我确实需要找出环境为何奇怪的事实-事实证明这是一种非标准的bash实施方式-切换到标准的bash解决了所有问题
拉里

@larry很高兴得出结论:不要忘记将答案标记为正确。
kojiro

17

$ mkdir <YOURPROJECT> 创建一个新项目

$ cd <YOURPROJECT> 将目录更改为该项目

$ virtualenv <NEWVIRTUALENV> 创建新的virtualenv

$ source <NEWVIRTUALENV>/bin/activate 激活新的virtualenv



9

对于Windows,您可以执行以下操作:

创建虚拟环境的方式为:virtualenv envName –python = python.exe(如果未创建环境变量)

激活虚拟环境:> \ path \ to \ envName \ Scripts \ activate

要停用虚拟环境:> \ path \ to \ env \ Scripts \ deactivate

可以在新的python版本上正常工作。


要对此进行详细说明:使用创建虚拟环境后virtualenv venv ,手动进入创建的Scripts文件夹只是为了查看文件,您将看到一些激活文件。这就是我们为Windows激活它的地方。因此,cd进入您的Scripts文件夹并. activate在命令行中键入(请确保在句点之后包含一个空格)。通过在路径的开头添加(venv),您会注意到命令行中的路径已更改。这意味着它现在已激活。
Azurespot


4

我也会推荐virtualenvwrapper。它为我创造了奇迹,以及我在激活方面总是遇到问题。http://virtualenvwrapper.readthedocs.org/en/latest/


嗨来源和。(句号)似乎可互换necrailk @ server6〜/ virtual] $源bin / activate放置不正确()。这似乎不起作用
拉里

我的bin权限:drwxrwxr-x 2 erika erika 4096 2013-01-24 14:37 bin /
Erika

根据文档,virtuallenvwrapper目前尚未针对python2.5进行测试,因此不方便添加到我的可能问题中,但谢谢
拉里

只是综述。发现我的主机使用的是非标准外壳。当更改为普通Bash时,一切正常。现在在提示中显示虚拟环境,并根据路径修改所有路径。非常感谢您的帮助和建议。
拉里

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的master分支并期望它能够实际工作。请改用带标签的版本。
乔恩·布林赫斯特

3

在Mac上,将shell更改为BASH(请注意,虚拟环境仅在bash shell中有效)

[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

我在运行源代码/ bin / activate时遇到了麻烦,然后我意识到我将tcsh用作终端shell而不是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

1

运行此代码,如果您在Windows计算机上,它将被激活
source venv/Scripts/activate

在此处输入图片说明


0

在这里发布我的答案可能有点晚了,但我仍然会发布,尽管这样做可能会使某人受益,

我曾经遇到过同样的问题,

主要原因是我以“ root”用户身份创建了virtualenv,但后来尝试使用另一个用户激活它。

chmod不能工作,因为您不是文件的所有者,因此替代方法是使用chown(更改所有权)

例如:

如果您在/ home / abc / ENV中创建了virtualenv

然后CD到/ home / abc

并运行以下命令:chown -Rv [您想要更改所有权的用户] [需要更改所有权的文件夹/文件名]

在此示例中,命令为:chown -Rv abc ENV

成功更改所有权后,您只需运行源/ENV/bin/./activate,您就应该能够正确激活virtualenv。


0

1-打开powershell并导航到您的应用程序文件夹2-输入您的virtualenv文件夹,例如:cd。\ venv \ Scripts \ 3-通过键入。\ activate激活virtualenv

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.