我知道 virtualenv,如果--no-site-packages
在创建新的虚拟环境时没有传递参数,会将/usr/local/lib/python2.7/site-packages
(对于 Python 2.7)中的包链接到新创建的虚拟环境。在 Ubuntu 12.04 LTS 上,我有三个可以安装 Python 2.7 包的位置(使用默认的 Ubuntu 提供的 Python 2.7 安装):
/usr/lib/python2.7/dist-packages
:这有我的 ipython、scipy、numpy、matplotlib 的全局安装——如果它们不能通过scipy 堆栈获得,我会发现单独安装这些软件包(及其所有依赖项)既困难又费时。/usr/local/lib/python2.7/site-packages
:这是空的,我认为除非我从源代码安装软件包,否则它将在 Ubuntu 上保持这种状态。/usr/local/lib/python2.7/dist-packages
: 这有非常重要的天文学本地包,特别是那些与 PyRAF、STScI 等相关的包,单独安装非常困难和耗时。
/usr/lib/python2.7/site-packages
请注意,我的系统上不存在诸如此类的全局目录。另请注意,我对 ipython、scipy 等的全局安装让我可以即时使用这些包,而无需每次都获取/激活虚拟环境。
自然,我现在想使用 virtualenv 在我的用户主目录中创建一个虚拟环境,我将为我未来的项目获取/激活它。但是,我希望这个虚拟环境在创建时能够链接/复制上面列表中位置 (1) 和 (3) 中的所有包。这样做的主要原因是我不想通过这个pip install
过程(如果可能的话)为这个(可能还有其他)虚拟环境重新安装 ipython、scipy、astro 包等。
以下是我的问题:
- 有没有办法让我指定 virtualenv 我希望它为
dist-packages
将来创建的虚拟环境链接/复制这两个目录中的包? - 当我最终在两个目录中更新我的 scipy、ipython 等全局安装时,
dist-packages
这是否也会更新/更改我的虚拟环境使用的包(以及它最初在 virtualenv 创建期间获得的包)? - 如果我曾经在 Ubuntu 上从源代码安装一个包,它会进入
/usr/local/lib/python2.7/dist-packages
,还是/usr/local/lib/python2.7/site-packages
?
在此先感谢您的帮助!