Import numpy không thành công khi nhúng code python trong C++

Em đang nhúng python file vào code C++ nhưng gặp lỗi khi dùng import numpy. Nếu không import gì thì gọi hàm, chạy file không phát sinh lỗi nhưng khi cố gắng import numpy nó hiện lỗi sau đây:

Traceback (most recent call last):
  File "D:\ML\cpp-extensions\hog\x64\Debug\main.py", line 1, in <module>
    import numpy as np
  File "C:\Users\forde\AppData\Local\Programs\Python\Python311\Lib\site-packages\numpy\__init__.py", line 149, in <module>
    raise ImportError(msg) from e
ImportError: Error importing numpy: you should not try to import numpy from
        its source directory; please exit the numpy source tree, and relaunch
        your python interpreter from there.

Code C++ của em:

    int main(int argc, char* argv[])
    {
    	Py_Initialize();
    	string working_dir = R"(D:\ML\applications\computer vision)";
    	PyRun_SimpleString(("import sys\nsys.path.append(r\"" + working_dir + "\")").c_str());

    	auto pName = PyUnicode_FromString("main");
    	auto pModule = PyImport_Import(pName);
    	Py_Finalize();

    	return 0;
    }

Không biết phải xử lý thế nào. Mong mọi người giúp ạ

Bạn nào có gặp lỗi này trong visual studio thì:

  1. Chuyển sang release mode để chạy nhé <3.

  2. Lưu ý chỉnh property của project về setting khi chạy “debug mode”(các mục additional include directories, additional library directories) để không bị đỏ phần #include

  3. Add vào path của sys.path phần này để tránh lỗi “no module named numpy” nhé :joy:

     string cmd = "import sys\nsys.path.append(r\"C:\\Users\\forde\\AppData\\Local\\Programs\\Python\\Python311\\Lib\\site-packages\")";
    
     PyRun_SimpleString(cmd.c_str());
    

Github link: ‘numpy.core._multiarray_umath’ not found on embedded Python, but found on console. · Issue #13051 · numpy/numpy (github.com)

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?