【发布时间】:2012-07-03 16:19:05
【问题描述】:
我正在 ubuntu 服务器上安装一个 python 应用程序。我在 buildout.cfg 中添加了 include-site-packages=false 但它仍然没有忽略 dist-packages。
【问题讨论】:
我正在 ubuntu 服务器上安装一个 python 应用程序。我在 buildout.cfg 中添加了 include-site-packages=false 但它仍然没有忽略 dist-packages。
【问题讨论】:
Buildout 不知道任何dist-packages,因为这是 Debian 和 Ubuntu 对 Python 的特定补充。如果在排除 site-packages 时 buildout 没有排除它,则不是唯一存在此“问题”的包; virtualenv 也不知道,见Ubuntu + virtualenv = a mess? virtualenv hates dist-packages, wants site-packages。
请随时在buildout issue tracker 中提出问题,以请求在忽略站点包时包含 dist-packages。
请注意,在我的 Debian 系统上,dist-packages 目录 被排除在外。
Buildout 通常通过确定以下两个命令之间的区别来确定 site-packages 目录是什么:
PYTHONNOUSERSITE="x" python -c "import sys, os;print repr([os.path.normpath(p) for p in sys.path if p])"
和
python -S -c "import sys, os;print repr([os.path.normpath(p) for p in sys.path if p])"
如果后者仍然为您包含 dist-packages 目录,那么我会将其归类为 Ubuntu 或 Debian 错误。在 Debian 6.0.5 和 zc.buildout 1.5.2 上,该路径不包括在内。
dist-packages 目录通常通过site.py module 添加(上面的-S 开关禁用)。 Debian 和 Ubuntu 已经修补了该模块。
【讨论】:
site-packages 路径的细节,也许你可以使用这些信息在你自己的系统上弄清楚这一点。否则,您必须使用 zc.buildout 包修补 easy_install 模块中的 _get_system_paths 方法。