如何在 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
目录下应该有app
和venv
文件夹。然后运行以下命令,这是在 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 没错,我以为这是一个错字,因为在下一行中,他将cd
s 变成了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:激活命令忽略我