获取嵌入式Python运行时以使用当前活动的virtualenv

Bri*_*ion 12 python virtualenv

我大量使用virtualenv来将我的开发环境与系统范围的Python安装隔离开来.使用virtualenv的典型工作流程涉及运行

source /path/to/virtualenv/bin/activate
设置Python执行隔离运行时所需的环境变量.确保我的Python可执行文件使用当前活动的virtualenv就像设置shebang一样简单
#!/usr/bin/env python

最近,我一直在编写一些嵌入Python运行时的C代码.我似乎无法弄清楚如何让嵌入式运行时使用当前活动的virtualenv.谁有一个很好的例子可以分享?

谢谢!

Nic*_*ght 0

好吧,C API 文档有点暗示它应该可以工作(我读它是模糊地暗示解释器调用 getenv 本身),但似乎缺乏足够的上下文来确定,而且我从未有机会实际测试这一点。

由于它显然不适合您,因此您真正要寻找的可能是Py_SetPythonHome(char *home),您应该只需要使用从 获得的字符串的副本进行调用getenv("PYTHONHOME")

当然,如果需要的话,您也可以修改sys.path为 的效果PYTHONPATH