Python的虚拟环境

时间:2014-06-29 23:07:26

标签: python virtualenv

您好我已经阅读了很多关于虚拟环境但我似乎没有得到一件事。

所以我有这样的道路:

../my_app/
../my_app/app.py
..etc

我应该把虚拟环境放在哪里? 在my_app/my_app/venv/bin,include,lib? 或与my_app

处于同一级别
/my_app/
/venv/

我不明白这个位置是否重要,或者如果使用activate它会引用它而不是去主要环境。

我希望这个问题有道理。

谢谢!

2 个答案:

答案 0 :(得分:3)

我建议使用virtualenv创建的根目录作为源文件的根目录。虚拟环境旨在与项目绑定,而不是在不同项目之间共享。例如,假设我在~/school目录中编写了大量代码。我cd~/school,执行virtualenv ENV。现在我有一个ENV目录,用于保存项目的源文件和依赖项。因此,您可以创建一个~/school/ENV/source文件夹,以保留所有源文件夹。所有虚拟环境文件都靠近您的程序,可以在ENV目录中轻松访问。

编辑:

解决问题的一部分:只要您在运行python程序并使用source bin/activate安装依赖项之前跟踪您的环境和pip,就可以在任何地方安装虚拟环境。

答案 1 :(得分:2)

  

我不明白这个位置是否重要或是否使用激活它   将引用它而不是去主要环境。

没关系,因为激活会正确处理路径,但是您不应该将虚拟环境放在源中,因为它不是您的应用程序的一部分(并且它不是可移植的) 。而是创建一个file with your requirements并将其放在源代码管理下。

您应该将它放在除源代码之外的任何目录中。激活脚本将确保路径指向正确的位置。

以下是一个例子:

$ virtualenv /home/somedir/envs/myenv
... # some output
$ source /home/somedir/envs/myenv/bin/activate
(myenv) $ mkdir /home/somedir/projects
(myenv) $ cd /home/somedir/projects
(myenv) projects $ 

如您所见,虚拟环境位于envs目录中,名为myenv。您的来源位于/home/somedir/projects。输入deactivate退出虚拟环境。