繁体   English   中英

Virtualenv:全局站点包与虚拟环境中的站点包

[英]Virtualenv: global site-packages vs the site-packages in the virtual environment

  1. 如果我在全局站点包和本地站点中都安装了某个包,那么哪个包将被导入? 这会工作还是会出错?
  2. 我应该在全球网站包中放置哪些包,哪些包放在本地包中?

上一个答案结束了问题1,但忽略了问题2。

我见过的全局最佳实践:

首先,核心Python包,因为这些不会随着向后兼容的问题而改变,除非你升级主要版本,并且你会希望python升级的任何安全修复程序自动应用到你的virtualenvs。

第二,easy_install或pip安装到每个virtualenv但不经常更改的软件包 - 例如MySQLdb / psycopg和PIL。

几乎所有其他内容都应该包含在你的virtualenv的软件包中(我强烈建议使用pip需求文件和virtualenvwrapper,以使其在其他机器上设置最简单,最容易设置)。

默认情况下,新创建的虚拟环境可以访问全局site-packages目录,除非使用--no-site-packages创建。 在激活某些环境的情况下调用easy_install(安装新软件包)将导致本地覆盖全局站点包中已存在的软件包(类似于继承)。 当缺失时,环境将使用自己的本地包 - 全局包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM