Python + SWIG + MinGW - setup.py собирает исходный код и файл pyd, python "не может найти модуль" - PullRequest
1 голос
/ 14 февраля 2010

Я использую MinGW для сборки модуля PythonC с использованием Swig. Когда я говорю Python о загрузке модуля, он выходит из строя и жалуется, что Python не может найти модуль.

Самое смешное, что модуль находится в том же каталоге, в котором я запускаю Python в и , модуль называется _mod.pyd. (Я также сгенерировал файл mod.py, который использует _mod.pyd по тому же пути.)

Это расстраивает, как будто ты не поверишь!

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "mod.py", line 25, in <module>
    _mod = swig_import_helper()
  File "mod.py", line 21, in swig_import_helper
    _mod = imp.load_module('_mod', fp, pathname, description)
ImportError: DLL load failed: The specified module could not be found.

Он собирается чисто (я использую distutils), и все мои dll находятся в каталоге, который был открыт для PATH.

Я на платформе Windows XP + MinGW (последняя стабильная версия MinGW).

Спасибо!

Ответы [ 3 ]

1 голос
/ 18 февраля 2010

Это распространенная проблема. Вы, вероятно, используете двоичную версию Python для Windows, которая скомпилирована с MSC, а не с MinGW. Вы можете видеть это, глядя на то, что говорит интерпретатор, когда вы запускаете его из командной строки. Если это так, у вас есть два варианта:

  • скомпилируйте модуль с помощью MSC или
  • скомпилировать интерпретатор Python с MinGW.

Для последнего варианта, удачи. Я никогда не был в состоянии сделать это.

0 голосов
/ 19 октября 2010

Вы пробовали:

python setup.py build --compiler = mingw32

0 голосов
/ 04 октября 2010

Я наткнулся на эту статью на сайте MinGW в разделе «Как создать расширения Python?»

http://www.mingw.org/wiki/FAQ

Я знал, что с pexports был трюк, но я пару раз проверял это с небольшим успехом / безуспешно (что я помню). Кто-нибудь еще смог заставить это успешно работать?

ура

кт

обновление

Я также нашел этот урок -> http://boodebr.org/main/python/build-windows-extensions И этот учебник -> http://www.mail-archive.com/modwsgi@googlegroups.com/msg04655.html

Я думаю, что это может быть так же просто, как запустить: "setup.py build -c mingw32"

...