gpt4 book ai didi

python - 扩建和 Virtualenv

转载 作者:太空狗 更新时间:2023-10-29 17:17:25 25 4
gpt4 key购买 nike

我在搞乱 buildout 和 virtualenv 的组合,以在 python 中设置一个隔离开发环境,允许进行可重现的构建。

有一个构建方法可以让你将 virtualenv 集成到构建中:

 tl.buildout_virtual_python

有了这个,我的 buildout.cfg 看起来像这样:

[buildout]
develop = .
parts = script
virtualpython


[virtualpython]
recipe = tl.buildout_virtual_python
headers = true
executable-name = vp
site-packages = false

[script]
recipe = zc.recipe.egg:scripts
eggs = foo
python = virtualpython

这会将两个可执行文件部署到 ./bin/:

vp
script

当我执行 vp 时,我得到了一个交互式的、独立的 python 对话框,正如预期的那样(无法从系统加载任何包)。我现在期望的是,如果我运行

./bin/script 

使用了独立的 python 解释器。但事实并非如此,它并不像“vp”那样孤立(这意味着我可以从系统级别导入库)。但是我可以运行:

./bin/vp ./bin/script

这将按照我的意愿在隔离环境中运行脚本。但是必须有一种方法可以在不链接命令的情况下指定它,否则 buildout 只能解决我希望的一半问题:)

感谢您的帮助!帕特里克

最佳答案

你不需要 virtualenv:buildout 已经提供了一个隔离的环境,就像 virtualenv。

例如,查看 bin 目录中 buildout 生成的文件。他们会有类似的东西:

import sys
sys.path[0:0] = [
'/some/thing1.egg',
# and other things
]

因此 sys.path 被完全替换为 buildout 想要在路径上拥有的内容:与 virtualenv 相同的隔离方法。

关于python - 扩建和 Virtualenv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1567494/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com