Option of defining an environment script for starting engines (with SSHEngineSetLauncher)
还没有人认领这个 Issue。
评估
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 新手友好度
- 48/100
- Issue 类型
- 功能
- 描述清晰度
- 基本清楚
- 活跃度
- 冷清
调研方向
先阅读 SSHEngineSetLauncher 和 SSHLauncher,然后检查 issue 中描述的小型跨平台测试脚本以及 subprocess.Popen 的环境处理。完成的标准是:环境脚本能够在 Linux 和 Windows 上准备 engine 环境,同时不让 Python 进程句柄指向 shell,并包含实现测试和文档。
由索引模型根据 Issue 内容生成。
描述
We need to adapt the environment before starting the actual ipp engine (through the SSHEngineSetLauncher). Adapting the environment via the environment parameter (in class SSHLauncher) is possible, but it's not very practical, since the launcher needs to know all the engine computer details in advance.
Calling a local environment script before starting the engine would give much more flexibility and would easily allow starting the engine e.g. in a python virtual environment, conda environment, etc.
Although the general idea is quite simple the actual implement is not as easy. The problem: one cannot simply start a shell, next the environment script and then the actual command because the process handle (in python) would point to the shell and not the actual command. Hence, the retrieved process id would be incorrect. Using some system code it would be still possible to retrieve the true process id, but this is especially difficult in windows which is why I tested an alternative solution:
Starting a shell, outputting all environment variable, running the environment script and outputting all environment variable again. A bit of python code analyses the output and collects the environment variable changes (especially added and/or changed env.vars). I have implemented a small test script that works under linux and windows.
The collected changes can then be easily passed to the env parameter of subprocess.Popen function.
Does this sound like an appropriate idea and solution?
As before I'm happy to provide the implementation, tests, documentation, etc.
- 主要语言
- Jupyter Notebook
- 星标
- 2.6k
- 派生
- 1k
- PR 合并指标
- 30 天内没有已合并 PR
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
ipython/ipyparallel 的其他 Issue
-
难度 2/5 1-3 小时 新手友好度 35/100
ipython/ipyparallel#984 ·
-
难度 4/5 3-5 天 新手友好度 35/100
ipython/ipyparallel#937 · 4 条评论 ·
-
question
难度 5/5 一周以上 新手友好度 25/100
ipython/ipyparallel#897 · 12 条评论 ·
-
bug
难度 4/5 3-5 天 新手友好度 35/100
ipython/ipyparallel#882 ·
-
难度 4/5 3-5 天 新手友好度 30/100
ipython/ipyparallel#851 · 1 条评论 ·
查看 ipython/ipyparallel 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 88/100
-
难度 2/5 1-3 小时 新手友好度 78/100
-
难度 2/5 1-3 小时 新手友好度 84/100
-
难度 2/5 1-3 小时 新手友好度 78/100
-
python
难度 2/5 1-3 小时 新手友好度 88/100
finos/opengris-scaler#1009 ·