在CPython中搜索DLL的可变路径

时间:2018-10-08 01:17:29

标签: python python-3.x 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找不到已经安装的库。

1 个答案:

答案 0 :(得分:0)

没有外部函数允许您更改变量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);
  }
相关问题