2012-12-02 50 views
1

我有我的Django项目文件夹,里面,我有我的virtualenv文件夹混淆在python Django的虚拟环境

我有几个问题

  1. 我的包已经安装在主安装以及在虚拟环境中。不要将这些软件包混合在一起。我的意思是如果我在主要安装和虚拟环境中的新版本有旧版本系统如何知道哪一个选择

  2. 假设我将我的项目文件夹移动到新计算机比我可以使用相同的虚拟env文件夹,因为它是在相同的应用程序目录或我必须从头再来

  3. 我如何知道PIP安装包到虚拟ENV或主安装

+0

我认为你的问题是你可能会混淆哪个包在哪个状态下使用。当你设置虚拟环境时,你可以通过使用'--no-site-packages'避免这个问题,这个虚拟环境不包括任何东西,从你的默认站点pacakge到你的虚拟环境。 –

+0

我的意思是说,如果我使用s系统pacakges那么那些将得到安装在virtualenv或虚拟env使用它从主系统 – user825904

回答

2
  1. 除非你创建的virtualenv - 系统现场-p包裹,包裹根本不混合。如果他们这样做,Virtualenv有优先权。

  2. 如果路径没有改变,有可能重用它。如果路径改变,你可以make a virtualenv --relocatable。但是你应该创建一个需求文件并且能够在一个pip -r req.txt命令中重新生成一个新的虚拟环境。

  3. 如果virtualenv被激活,pip将安装在virtualenv中,它具有优先权。

+0

谢谢。我不喜欢2和3,但仍然没有得到第一点。那些网站包选项会带来什么结果。是否有任何方法不能使用主安装中的单个软件包。我的意思是有可能主要设施有0个包,我的整个项目只依赖于虚拟环境。 – user825904

+0

使用'--no-site-packages'选项。 – Ohad

+1

@Ohad:'--no-site-packages'现在是默认设置。使用'--no-site-packages',virtualenv不会访问系统站点包。使用'--system-site-packages',当virtualenv被激活时,virtualenv将启用系统站点包。您可以运行'pip freeze'来查看已安装软件包的列表,并使用'pip uninstall'删除您不需要的软件包。 – jpic