2016-02-27 69 views
6

我想在我的應用程序中嵌入python zip文件。 我從python網站下載了zip文件(win32的)。嵌入Python Zip文件引發錯誤?

這是我用來設置Python路徑

#include <Python.h> 
... 
std::wstring exe_dir = L"\\exe\\path"; 
std::wstring python_path; 
python_path += exe_dir + L"python-3.5.1-embed-win32.zip"; 
Py_SetPath(python_path.c_str()); 

Py_Initialize(); // Error : "Py_Initialize: unable to load the file system codec" 

... 

的代碼,但無論我做什麼,應用程序拋出同樣的錯誤所有的時間。 即使我玩弄各種路徑。

如何將zip文件嵌入到我的應用程序中?

回答

0

「python-3.5.1-embed-win32.zip」內有另一個zip文件。

python35.zip 

並且該文件是需要添加的文件。

#include <Python.h> 
...  
std::wstring exe_dir = L"\\exe\\path"; 
std::wstring python_path; 
python_path += exe_dir + L"python35.zip"; 
Py_SetPath(python_path.c_str()); 

Py_Initialize();  
... 

我很想知道其他的文件是,(或者如果這是使用它的正確方法)...

+0

我創建了一個[blog posts](http://www.myoddweb.com/2016/02/27/embed-python-in-your-c-application-without -python-installed-on-guest-machine /),指向python的鏈接以及後續步驟。 – FFMG

0

回答關於「什麼其他文件的最後一個問題用於「在嵌入式發行版中,您會在某些導入中看到錯誤。我收到了一個導入NumPy/SciPy的錯誤,因爲Python35.zip以外的其中一個文件丟失 - _ctypes.pyd。至少在Python 3.5.2上,這個小文件pyvenv.cfg也必須放在EXE旁邊,它只是一個文本文件,表示applocal = true。當然你當然需要python35.dll ...