- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我知道 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 在我的用户主目录中创建一个虚拟环境,我将为我 future 的项目提供/激活它。但是,我希望这个虚拟环境在创建时能够链接/复制上面列表中位置 (1) 和 (3) 中的所有包。这样做的主要原因是我不想通过 pip install
过程(如果可能的话)为此重新安装 ipython、scipy、astro-packages 等(可能还有其他)虚拟环境。
这是我的问题:
dist-packages
目录中的包?dist-packages
目录中更新我的 scipy、ipython 等全局安装时,这是否也会更新/更改我的虚拟环境使用的包(以及它最初使用的包在 virtualenv 创建期间得到)? /usr/local/lib/python2.7/dist-packages
还是 /usr/local/lib/python2.7/site-packages
?预先感谢您的帮助!
最佳答案
这可能是 PYTHONPATH
的合法使用 - virtualenv
不涉及的环境变量,它使用与环境变量 PATH< 相同的语法
,在 bash 中 PYTHONPATH=/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages
在 .bashrc 或类似文件中。如果你走这条路,
您根本不必将此告诉您的虚拟环境,它不会尝试更改它。
不需要重新链接,并且
如果你安装它们,它仍然会去它应该去的地方(pip install
总是使用/usr/local/lib/python2.7/dist-packages/用于我的 Ubuntu)在您的虚拟环境之外。如果您从虚拟环境中安装它们(当它被激活时),那么它当然会被放入虚拟环境中。
关于python - 如何让 virtualenv 在 Ubuntu 上使用 dist-packages?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19210964/
我是一名优秀的程序员,十分优秀!