Уведомления

Группа в Telegram: @pythonsu

#1 Июль 5, 2011 17:51:16

Yurietc
От:
Зарегистрирован: 2007-07-18
Сообщения: 112
Репутация: +  0  -
Профиль   Отправить e-mail  

SWIG pythonxy_d.lib cannot be found

Здравствуйте.
Начал разбираться со SWIG, Visual Studio 2008, C++, Python 2.6, Windows 7. При билде проекта получаю ошибку python26_d.lib cannot be found. И действительно, такого файла нет в сборке питона. Есть описанное решение :
'''
This file is only used for Debug builds and is not included in the Python binary distribution. You must download the Python sources and build the LIB and the corresponding DLL yourself.

But be careful! When you link your extension module with the debug version of the Python interpreter, you can only import the module when python.exe is also a debug version. Otherwise, you will receive the error “Fatal Python error: Interpreter not initialized (version mismatch?).”
'''
Но проблемма в том, что код должен компилироваться на нескольких машинах. И делать сборку питона на каждой не представляется возможным. Посоветуйте как решить, что почитать.



Офлайн

#2 Июль 5, 2011 18:12:20

Yurietc
От:
Зарегистрирован: 2007-07-18
Сообщения: 112
Репутация: +  0  -
Профиль   Отправить e-mail  

SWIG pythonxy_d.lib cannot be found

Только-что нашел еще одно решение http://tutorial.debashis.net/?p=57
В принципе до него можно было и самому додуматься, но это же не кошерно …



Офлайн

#3 Июль 5, 2011 18:40:08

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

SWIG pythonxy_d.lib cannot be found

Кошерное решение:

#ifdef _DEBUG
#define RESTORE_DEBUG_FLAG
#undef _DEBUG
#endif
#include <python.h>
#ifdef RESTORE_DEBUG_FLAG
#define _DEBUG
#endif
SWIG — наверное, самое неудачное решение из всех возможных.



Офлайн

#4 Июль 5, 2011 20:29:49

Yurietc
От:
Зарегистрирован: 2007-07-18
Сообщения: 112
Репутация: +  0  -
Профиль   Отправить e-mail  

SWIG pythonxy_d.lib cannot be found

Хитро, но к сожалению Visual Studio тоже не пальцем деланная. Выдает ошибку

fatal error C1189: #error : You have included some C++/C library header files with _DEBUG defined and some with _DEBUG not defined. This will not work correctly. Please have _DEBUG set or clear consistently.

P.S. А как лучше вызывать С-шные модули питоном ?



Отредактировано (Июль 5, 2011 20:31:15)

Офлайн

#5 Июль 5, 2011 21:07:24

Андрей Светлов
От:
Зарегистрирован: 2007-05-15
Сообщения: 3137
Репутация: +  14  -
Профиль   Адрес электронной почты  

SWIG pythonxy_d.lib cannot be found

boost::python. Заодно в boost/python/details/wrap_python.hpp посмотрите, как именно это делается. Вроде бы для VC нужно кучу файлов сначала включить.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version