Задача такая: есть большая и толстая программа для винды на пайтоне. На компьютере, в котором будет запускаться программка, может не быть как пайтона, так и visual studio. Поэтому мной было принято решение запихать все это дело в exe. После многих раз неудачной пересборки, решил отписаться тут.
Дополнение: тестирую на 3х компьютерах (далее: первый, второй и третий), на первом стоит все (программу писал на нем): windows 8.1_64, python 2.7 32bit; второй - не стоит ничего пайтоновского, тоже win8.1, третий - стоит python 2.7 32bit, без всех не стандартных модулей, windows 8.
Теперь о проблемах: файл содержит много модулей, а именно:
import Tkinter import ttk import ftd2xx import numpy import cv2 import cv2.cv as cv import os import time import win32api import random import Image import ImageTk import tkFileDialog import cPickle
Теперь о результатах:
1) py2exe
написал код с примера:
from distutils.core import setup import py2exe setup( windows=[{"script":"Test.pyw"}], options={"py2exe": {"includes":["sip"]}} )
python setup.py py2exe
ImportError: No module named sip
from distutils.core import setup import py2exe setup( windows=[{"script":"Test.pyw"}], options={"py2exe": {}} )
Кинул в папку файл
C:\Windows\System32\ftd2xx.dll
Третий компьютер:
Traceback (most recent call last):
File "Test.pyw", line 5, in <module>
File "cv2.pyc", line 12, in <module>
File "cv2.pyc", line 10, in __load
ImportError: DLL load failed: Не найден указанный модуль.
2) pyinstaller
поставил, собрал:
python C:\Python27\pyinstaller-2.0\pyinstaller.py --windowed Test.pyw
На второй машине наблюдал странное программа не запускается, вообще никак, без всяких логов и выводов ошибок. Выполнял из консоли, высвечивает просто приглашение, как будто энтер нажимаешь.
3) cx_freeze
Сетап:
from cx_Freeze import setup, Executable setup( name = "Test", version = "0.1", description = "test", executables = [Executable("Test.pyw")])
python setup.py build
, я не шучу, что-то с кодировками не то:File "Test.pyw", line 1, in <module>
File "C:\Python27\lib\lib-tk\Tkinter.py", line 38, in <module>
import FixTk
File "C:\Python27\lib\lib-tk\FixTk.py", line 65, in <module>
import _tkinter
ImportError: DLL load failed: %1 эх ты хЄё яЁшыюцхэшхь Win32.
Прошу помочь хотя бы выбрать каким путем идти, заранее спасибо.