用于在 CPython 中搜索 DLL 的变量 PATH

Variable PATH to search for DLLs in CPython

CPython

更改变量 PATH 和其他用于指定路径的选项不起作用。

未找到 d:\ProgramFiles\Anaconda3\envs\pycharm\Library\bin\mkl_rt.dll

int main()
{
  SetEnvironmentVariableW(L"Path",
      L"D:/ProgramFiles/Anaconda3/envs/pycharm;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/Library/mingw-w64/bin;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/Library/usr/bin;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/Library/bin;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/Scripts;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/bin;"
      L"%PATH%"
  );
  int e = GetLastError();
  AddDllDirectory(L"D:/ProgramFiles/Anaconda3/envs/pycharm");
  AddDllDirectory(
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/Library/mingw-w64/bin");
  AddDllDirectory(L"D:/ProgramFiles/Anaconda3/envs/pycharm/Library/usr/bin");
  AddDllDirectory(L"D:/ProgramFiles/Anaconda3/envs/pycharm/Library/bin");
  AddDllDirectory(L"D:/ProgramFiles/Anaconda3/envs/pycharm/Scripts");
  AddDllDirectory(L"D:/ProgramFiles/Anaconda3/envs/pycharm/bin");
  Py_SetPythonHome(L"d:/ProgramFiles/Anaconda3/envs/pycharm/");
  Py_SetPath(
      L"D:/ProgramFiles/Anaconda3/envs/pycharm;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/Library/mingw-w64/bin;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/Library/usr/bin;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/Library/bin;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/Scripts;"
      L"D:/ProgramFiles/Anaconda3/envs/pycharm/bin;");
   Py_Initialize();
  PyObject *m, *d, *v;
   m = PyImport_AddModule("__main__");
   if (m == NULL)
      return -1;
   d = PyModule_GetDict(m);
   FILE *hfile = 0;
   fopen_s(&hfile, "script.py", "r");
   v = PyRun_FileExFlags(hfile, "script.py", Py_file_input, d, d, 1, 0);
   if (v == NULL) {
      PyErr_Print(); // Not found d:\ProgramFiles\Anaconda3\envs\pycharm\Library\bin\mkl_rt.dll
      return -1;
   }
   return 0;
}

请帮忙解决这个问题。我想使用神经网络,但 Python 找不到已安装的库。

没有外部函数允许您更改变量 PATH。我不得不更改 Python.

中的变量 PATH
      d = PyModule_GetDict(m);
  PyObject *code = PyUnicode_FromWideChar(
      L"import os;os.environ[\"PATH\"]=os.getenv(\"PATH\")+\"D:/ProgramFiles/Anaconda3/envs/pycharm;D:/ProgramFiles/Anaconda3/envs/"
      L"pycharm/Library/mingw-w64/bin;D:/ProgramFiles/Anaconda3/envs/pycharm/"
      L"Library/usr/bin;D:/ProgramFiles/Anaconda3/envs/pycharm/Library/bin;D:/"
      L"ProgramFiles/Anaconda3/envs/pycharm/Scripts;D:/ProgramFiles/Anaconda3/"
      L"envs/pycharm/bin\"", -1);
  if (code != NULL) {
    v = PyRun_StringFlags(PyUnicode_AsUTF8(code), Py_single_input, d, d, 0);
    Py_XDECREF(v);
    Py_XDECREF(code);
  }