如何确保构建不使用已安装的软件包?

发布于 2024-10-14 15:50:13 字数 500 浏览 7 评论 0原文

我正在尝试完全切换到构建 - 但我们的开发环境已经在 /usr/lib/pythonxx/ 中安装了很多东西,

我如何确保构建不使用安装在系统已经 - 最终没有 virtualenv ?

例如——如何避免这种行为? :

> cat buildout.cfg
[buildout]
parts = django

[django]
recipe = zc.recipe.egg
eggs = django
interpreter = django

>bin/django 

>>> import django
>>> django
<module 'django' from '/usr/lib/python2.6/site-packages/django/__init__.pyc'>
>>> 

有没有办法强制构建不使用 /usr/lib/python2.6 中安装的eggs?

I am trying to switch fully to buildout - but our development environment already has lot of stuff installed in /usr/lib/pythonxx/

How can I make sure that buildout doesn't use the libraries installed on the system already - eventually without virtualenv ?

For example - how to avoid this behavior ? :

> cat buildout.cfg
[buildout]
parts = django

[django]
recipe = zc.recipe.egg
eggs = django
interpreter = django

>bin/django 

>>> import django
>>> django
<module 'django' from '/usr/lib/python2.6/site-packages/django/__init__.pyc'>
>>> 

Is there anyway to force buildout NOT to use the eggs installed in /usr/lib/python2.6 ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

眼藏柔 2024-10-21 15:50:13

您可以通过以下两个指令之一告诉 buildout 是否要使用 site-pakages:include-site-packagesallowed-eggs-from-site-packages

来自构建文档

然后您可以使用 include-site-packages
= false 和 exec-sitecustomize = false 消除访问的构建选项
到你的Python站点包而不是
执行其 sitecustomize 文件,如果
分别存在。

或者,您可以使用
允许来自站点的鸡蛋包
作为全局感知的构建选项
可能来自的鸡蛋白名单
站点包。该值默认为
“*”,接受所有鸡蛋。

You can tell buildout if you want to use site-pakages or not with one of these two directives: include-site-packages and allowed-eggs-from-site-packages

From buildout documentation:

You can then use include-site-packages
= false and exec-sitecustomize = false buildout options to eliminate access
to your Python's site packages and not
execute its sitecustomize file, if it
exists, respectively.

Alternately, you can use the
allowed-eggs-from-site-packages
buildout option as a glob-aware
whitelist of eggs that may come from
site-packages. This value defaults to
"*", accepting all eggs.

誰ツ都不明白 2024-10-21 15:50:13

有两种方法:

  • 使用最新的 1.5.something 构建:默认情况下它们不使用系统软件包。

  • 使用 -s 标志运行 bootstrap 命令:python bootstrap.py -s,这意味着“无站点包”。

Two ways:

  • Use the latest 1.5.something buildouts: they don't use the system packages by default.

  • Run the bootstrap command with the -s flag: python bootstrap.py -s, which means "no site packages".

倒数 2024-10-21 15:50:13

,它带有从系统 python 中排除鸡蛋的选项,

我在 buildout 1.5 之前使用的一种替代方案是virtualenv

我们编写一个 virtualenv 自定义引导程序来创建环境,获取 bootstrap.py 并放置最小的 buildout.cfg,但您可以使用 virtualenv通常:

cd project virtualenv --no-site-packages ./
wget http://...../bootstrap.py 
touch buildout.cfg
source bin/activate
python bootstrap.py
bin/buildout

瞧,你的构建与 virtualenv 隔离

one alternative that i did use before buildout 1.5 that come with options for exclude eggs from your system python was

virtualenv

we write a virtualenv custom bootstrap that create the environment, fetch bootstrap.py and put a minimal buildout.cfg, but you can use virtualenv normally:

cd project virtualenv --no-site-packages ./
wget http://...../bootstrap.py 
touch buildout.cfg
source bin/activate
python bootstrap.py
bin/buildout

and voila, your buildout isolated with a virtualenv

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文