Custom environments in subinterpreters
还没有人认领这个 Issue。
- 主要语言
- Python
- 星标
- 77.2k
- 派生
- 35.9k
- PR 合并指标
- PR 指标待抓取
描述
Feature or enhancement
Proposal:
I wanted to explore the viability of having custom environments in subinterpreters. There are several use-cases that could be enabled by this feature.
So far, from informal discussion with others about this, there are a couple possible issues to take into consideration.
Issues
- Some of the immortal objects shared between subinterpreter may be environment-dependent (pointed out by @Yhg1s)
- Complications around dynamic loading, by having extension modules from different environments
2.1) Symbol conflicts from their dependencies (pointed out by @Yhg1s)
2.2) Since subinterpreters share the same process, when loading the same shared object, they get the same pointer (pointed out by @pablogsal)
Implementation
The main thing we need is a way to disable the site initialization, which could be a enable_site option in the interpreter config. This should disable the environment customizations, and result in a bare environment without anything extra sys.path.
However, to make the use of different environments more ergonomic, we could add an environment_path location pointing to a directory containing a pyvenv.cfg, which would perform the site initialization for that environment.
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
该 issue 未指定任何文件或测试;请先审查 subinterpreter 的解释器配置和 site 初始化。根据列出的 immortal-object 和 dynamic-loading 相关问题,评估提议的 enable_site 和 environment_path 选项。完成的标准是形成一份经各方同意的设计,解决这些问题并定义实现范围。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- backend
- Issue 类型
- 功能
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 停滞
- 描述清晰度
- 需要澄清
- 新手友好度
- 25/100