如何在 Linux 中激活 virtualenv?

Posted

技术标签:

【中文标题】如何在 Linux 中激活 virtualenv?【英文标题】:How to activate virtualenv in Linux? 【发布时间】:2013-01-14 07:26:13 【问题描述】:

我一直在寻找并尝试各种替代方案,但都没有成功,现在花了几天时间 - 快把我逼疯了。

使用 Python 2.5.2 在 Red Hat Linux 上运行 开始使用最新的 Virtualenv 但无法激活它,我发现某处建议需要早期版本,所以我使用了 Virtualenv 1.6.4,因为它应该适用于 Python 2.6。

好像安装虚拟环境ok

[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.

还是不开心……

【问题讨论】:

你试过“source ~/virtual/bin/activate”吗? 从您的环境目录中执行. bin/activate,它应该可以正常工作。 我想你只需要使用source 命令,即source bin/activate 我认为您必须从 virtualenv 目录执行此操作,所以首先 cd ~/.virtualenvs/*environmentname* 然后 source ~/.virtual/bin/activate 【参考方案1】:

这是我创建文件夹并cd'ing 后的工作流程:

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

【讨论】:

好的,试过这个不开心 [necrailk@server6 ~/virtual]$ cd [necrailk@server6 ~]$ $source virtual/bin/activate source: 未定义的变量。 [necrailk@server6 ~]$ sh virtual/bin/activate [necrailk@server6 ~]$ 不要输入$ 字符,看起来就像您在此处所做的那样:[necrailk@server6 ~]$ $source$ 用于指示命令提示符。 还是遇到badly place()的错误...怎么办? 同样的错误在这里 :( user@mintdesk ~/python_v $ venv/bin/activate bash: venv/bin/activate: Permission denied 一直输入“source”的替代方法是使用“.”:$ . venv/bin/activate【参考方案2】:

你忘了做source bin/activate 其中source 是一个可执行文件名。 前几次也让我印象深刻,很容易认为手册告诉“从环境文件夹的根目录执行”。

无需通过chmod 使activate 可执行。

【讨论】:

OP 输入了. bin/activate。注意.,它是source 的同义词。 "source 是一个可执行文件名"... 哪个可执行文件? cmd.exe? powershell.exe? 我正在尝试从 cron 激活环境,如果没有可执行文件 (chmod 755),它将无法工作。【参考方案3】:

你可以的

source ./python_env/bin/activate

或者直接进入目录

cd /python_env/bin/

然后

source ./activate

祝你好运。

【讨论】:

【参考方案4】:

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

source venv/bin/activate

【讨论】:

【参考方案5】:

cd到环境路径,进入bin文件夹。 此时使用 ls 命令,应该会看到“activate”文件。

现在输入

source activate

【讨论】:

【参考方案6】:

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

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

$ virtualenv <NEWVIRTUALENV> 创建新的虚拟环境

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

【讨论】:

【参考方案7】:

问题在于/bin/. 命令。这真的很奇怪,因为.应该始终是指向它所在目录的链接。(老实说,除非 . 是一个奇怪的别名或函数,否则我什至看不出它是怎么可能的。)你的 shell 没有 @ 也有点不寻常。 987654324@builtin for source.

一个快速的解决方法是在不同的 shell 中运行 virtualenv。 (明显的第二个优势是,您不必deactivate,只需exit。)

/bin/bash --rcfile bin/activate

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

顺便说一句,您不需要chmod +x 那些文件。如果您想直接执行文件,则只需要可执行文件。在这种情况下,您尝试从 . 启动它们,因此它们不需要它。

【讨论】:

另外,你应该来源bin/activate,而不是.bin/activate。甚至可以使用. 然后... @krlmlr 没错,我以为这是一个错字,因为在下一行中,他将cds 变成了bin hi[necrailk@server6 ~/virtual]$ source bin/activate 放置错误的 ()。 [necrailk@server6 ~/virtual]$ korjiro - 你是对的 - 我确实需要找出为什么环境很奇怪 - 它原来是一个非标准 bash 实现 - 切换到标准 bash 解决了所有问题【参考方案8】:

而不是./activate

使用source activate

【讨论】:

【参考方案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) 添加到路径的开头,您会注意到命令行中的路径发生了变化。这意味着它现在已激活。 '.'未被识别为内部或外部命令、可运行程序或批处理文件。【参考方案10】:

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

如果您在 linux/mac 机器上运行此代码,它将被激活. venv/bin/activate

【讨论】:

它对我来说在 linux 上使用 env 而不是 venv 是的,那很好,那么你的 venv 名称可能是 env 这就是为什么。【参考方案11】:

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

【讨论】:

嗨源和 . (句号) 似乎可以互换 necrailk@server6 ~/virtual]$ source bin/activate 放置不好 () 的。这似乎不起作用 我的 bin 权限:drwxrwxr-x 2 erika erika 4096 2013-01-24 14:37 bin/ 根据文档,virtuallenvwrapper 目前没有针对 python2.5 进行测试,所以不方便添加我可能出现的问题 - 但谢谢 只是一个综述。发现我的主机使用的是非标准外壳。当更改为普通 Bash 时,一切正常。现在在提示符中显示虚拟环境,所有路径都相应修改。非常感谢您的帮助和建议。【参考方案12】:

创建您自己的名为<Your Env _name >: 的Python 虚拟环境。 我给了它VE。

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

要激活您的新虚拟环境,请运行(注意这里不是./):

. VE/bin/activate

示例输出(注意提示已更改):

(VE)c34299@a200dblr$

设置好虚拟环境后,您可以删除 Virtualenv 存储库。

【讨论】:

您不应该检查 virtualenv 的主分支并期望它实际工作。请改用标记版本。【参考方案13】:

在 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$ 

注意:提示已更改

【讨论】:

【参考方案14】:

Windows 10

在 Windows 中创建这些目录:

在 Windows 10 中激活虚拟环境。

down\scripts\activate

\scripts 目录包含激活文件。

Linux Ubuntu

在 Ubuntu 中创建了这些目录:

在 Linux Ubuntu 中激活虚拟环境。

source ./bin/activate

/bin 目录包含激活文件。


虚拟环境从 Windows 复制到 Linux Ubuntu,反之亦然

如果虚拟环境文件夹从 Windows 复制到 Linux Ubuntu 则根据目录:

source ./down/Scripts/activate

【讨论】:

【参考方案15】:

我在运行 source /bin/activate 时遇到了麻烦,然后我意识到我使用 tcsh 作为终端 shell 而不是 bash。切换后,我就可以激活 venv。

【讨论】:

【参考方案16】:

在这里发布我的答案可能有点晚了,但我还是会发布,虽然它可能会使某人受益,

我遇到了同样的问题,

主要原因是我将 virtualenv 创建为“root”用户 但后来试图用另一个用户激活它。

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

例如:

如果你的 virtualenv 创建在 /home/abc/ENV

然后 CD 到 /home/abc

并运行命令:chown -Rv [user-to-whom-you want-change-ownership] [需要更改所有权的文件夹/文件名]

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

成功更改所有权后,您只需运行 source /ENV/bin/./activate 即可正确激活 virtualenv。

【讨论】:

【参考方案17】:

1- 打开 powershell 并导航到您的应用程序文件夹 2-输入您的 virtualenv 文件夹 ex:cd .\venv\Scripts\ 3- 按类型激活 virtualenv .\activate

【讨论】:

以上是关于如何在 Linux 中激活 virtualenv?的主要内容,如果未能解决你的问题,请参考以下文章

Linux Mint 20.2 和 Virtualenv:激活命令忽略我

第二天返回项目时重新激活virtualenv

如何使用 makefile 激活 virtualenv?

cd进入目录时如何自动激活virtualenvs

无法在 Windows 的 GIT bash mingw32 中激活 virtualenv

在 Dockerfile 中激活 python virtualenv