【发布时间】:2013-10-13 04:58:44
【问题描述】:
我知道 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 stack 获得它们,我会发现单独安装这些软件包(及其所有依赖项)既困难又费时。李> -
/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目录中的包? - 当我最终在两个
dist-packages目录中更新我的 scipy、ipython 等全局安装时,这是否也会更新/更改我的虚拟环境使用的包(以及它最初在 virtualenv 创建期间获得的包)? - 如果我曾经在 Ubuntu 上从源代码安装包,它会进入
/usr/local/lib/python2.7/dist-packages还是/usr/local/lib/python2.7/site-packages?
提前感谢您的帮助!
【问题讨论】:
标签: python ubuntu virtualenv packages environment