У меня есть программа, которая в настоящее время зависит от numpy
, с которой я работал над преобразованием с py2exe
. Моя проблема заключается в том, что даже при сценарии, такие какУменьшение размера распределения py2exe, включая некоторые функции numpy
from numpy import array
print array(1)
что только использует функцию numpy.array
, я не могу найти способ, чтобы исключить, казалось бы, ненужные части numpy
упаковки, такие как в распределении numpy.linalg
, который создается py2exe
. Это приводит к тому, что размер распределения составляет более 80 МБ (30 МБ после застежки). Существует файл в папке с именем numpy.linalg._umath_linalg.pyd
, который составляет 34 МБ, а другой - numpy.linalg.lapack_lite.pyd
, который составляет 18 МБ - это действительно нужно быть там ?! .exe
не запускается, если они просто удалены.
Мой вопрос: Как уменьшить размер результирующего распределения? Я знаю, что есть альтернативы py2exe
и что если я смогу удалить зависимость от numpy
, у меня не было бы этой проблемы, но я бы хотел придерживаться обоих этих.
Следующий сценарий установки - это то, что я использую, в результате получается распределение 87 МБ.
from distutils.core import setup
import py2exe, sys
import shutil
sys.argv.append('py2exe') # No need to type in command line.
py2exe_options = {
# 'excludes': ['numpy.linalg'], # Stopped the resulting exe from running
'compressed': True, # Saves 5MB, is this at the cost of some speed?
'optimize': 1 # I don't really understand what this does.
}
setup(
windows=[{'script': 'main.pyw'}],
options={'py2exe': py2exe_options},
)
shutil.rmtree('build', ignore_errors=True) # Remove the build folder
Связанный: http://forums.xkcd.com/viewtopic.php?f=11&t=57929 – Siwel
Да странно. Эти два файла '.pyd' в моей системе составляют только 68 и 26 КБ. Как вы установили Numpy? –
Размер зависит от того, содержат ли файлы такие вещи, как Intel MKL/OpenBLAS/Atlas, статически связанные. Если вам не нужна быстрая линейная алгебра, вы можете минимизировать размер, компилируя Numpy без MKL/OpenBLAS/Atlas. –