我正在使用 conda-pack 在 Windows(Windows 10、64 位、Python 3.8)上创建可重定位的 miniconda 环境。效果很好:我可以使用激活目标机器上的环境
activate base
并运行带有所有 conda 好东西的 python。
现在我编译一个用 C 语言编写的 DLL,它嵌入了重新定位的环境。它有效——只要我不尝试使用特定于 conda 的函数(例如 import numpy)——在这种情况下,PyImport_Import(pName)
返回 NULL(在我的情况下为 pName = "python38.dll")。问题显然是环境没有被正确激活。
我已经尝试在其他地方查看帖子:
在 Windows 中设置 PATH、PYTHONHOME 环境变量以指向 env 的所有二进制目录(在 DOS shell 中工作,不嵌入)
将 Py_SetPythonHome(program_name) 和 Py_SetProgramName() 与环境根目录的绝对路径一起使用,希望能激活它
将 Py_SetPath(path) 与 env 二进制目录 (c:\root; c:\root\Lib; c:\root\Scripts;c:\root\DLLs) 的所有绝对路径的逗号分隔列表一起使用
有没有人从 C 中成功使用过这样的嵌入式 conda 环境?
感谢您的任何想法!
维尔纳