Ответ 1
У меня была та же проблема, но вызов import numpy
внутри setup.py
разрешил проблему
У меня Python 2.7 на ОС Windows 7. Я хочу упаковать файл project.py в исполняемый файл с помощью py2exe. Следуя инструкции, я написал файл setup.py
from distutils.core import setup
import py2exe
setup(console=["project.py"])
и я получил это сообщение
Я попытался исключить ' libiomp5md.dll'
from distutils.core import setup
import py2exe
setup(console=["SegmentationAccuracy.py"])
dll_excludes = ['libiomp5md.dll']
но всегда я получаю такое же сообщение об ошибке ": libiomo5md.dll: Нет такого файла или каталога"
мой исполняемый файл содержит:
import math
import os
import numpy as np
import sys
import ogr
from progressbar import ProgressBar
from shapely.geometry import Polygon
nan = np.nan
У меня была та же проблема, но вызов import numpy
внутри setup.py
разрешил проблему
libiomp5md.dll
является компилятором Intel C и используется для операций OpenMP
многопроцессорности. Я ожидаю, что ваш код включает numpy
или код, скомпилированный с помощью компилятора Intel, и поэтому ваша конструкция py2exe
зависит от этого.
Вы не можете просто создать сборку без нее, поэтому я бы предложил найти ее в вашей системе и скопировать ее в каталог, в котором вы запускаете python setup.py py2exe
. Подсказка: у меня есть копия в C:\Python27\Lib\site-packages\numpy\core
[Если вы действительно хотите его исключить, вам придется скомпилировать numpy
вручную с помощью Visual Studio или Msys.]
Как только у вас есть libiomp5md.dll
в каталоге, который выполняется python setup.py py2exe
, вам нужно удалить строку exclude_dll
(так как вы не хотите ее исключать...)
from distutils.core import setup
import py2exe
setup(console=["SegmentationAccuracy.py"])
У меня была та же проблема. Я должен был установить numpy на машине, сделал это с mingw gcc-компилятором. Я подтвердил: копия dll, найденная в C:\Python27\Lib\site-packages\numpy\core\
Я только что скопировал его в рабочий каталог перед запуском установки.
Ничего особенного в настройке setup.py, зависимости автоматически обнаруживаются.
Хорошо, у меня была та же проблема. Оказалось, что файл .pyd в sklearn ссылался на libiomp5md.dll. Py2exe выглядит в двух местах для вашей DLL - в переменной окружения пути и в том же каталоге, в котором находится файл .pyd. Libiomp5md.dll не находится ни в одном. Py2exe в значительной степени сдается и вместо того, чтобы указывать полное имя пути, такое как c:\Python27\lib\site-packages\numpy\core\libiomp5md.dll, он говорит "libiomp5md.dll", который впоследствии не может найти.
Я нетерпелив. Я добавил строку в свой файл установки:
os.environ [ "PATH" ] + = os.pathsep + os.path.dirname(numpy.core. файл)
и что там, где libiomp5md.dll. Теперь все работает. Просто убедитесь, что вы делаете это в своем коде до вызова настройки, и он будет для вас тоже.