Создание msi в cx freeze - модуль в reportlab

Я пытаюсь создать распространяемый скрипт Python в cx_freeze. Когда я его запускаю, я получаю такую ​​ошибку:

ImportError: No module named lib

Ссылочная строка в моей программе

from reportlab.lib import colors, utils

Я не указывал пакеты в моем setup.py. Результатом этой конкретной программы является отчет в формате PDF, написанный в Reportlab. Я также использую PyQt4, matplotlib, numpy и mpl_toolkits. В большинстве из них я импортирую определенные модули. Есть ли способ поменять пакеты? Или каким-то другим способом делать то, что я хочу? Цель состоит в том, чтобы установить программу, чтобы коллега мог создавать отчеты в мое отсутствие, не выполняя фактическую установку Python и дополнительных компонентов.


ETA

Вот мой setup.py:

import sys
from cx_Freeze import setup, Executable

base = None

build_exe_options = {"packages": ["os",'sys', 'PyQt4','reportlab', 'csv', 'numpy', 'matplotlib']}


if sys.platform == 'win32':
    base = 'Win32GUI'

setup(  name = "XY grouped plots",
        version = "0.1",
        description = "Contact <myworkemail> with questions",
        options = {"build_exe" : build_exe_options},
        executables = [Executable("XY_grouped_plots.pyw", base=base)])

А вот импорт, который я использую в своей программе:

import sys
from PyQt4 import QtGui, QtCore
from PyQt4.QtGui import *   #yes, I know this should be covered above
from PyQt4.QtCore import * #but for some reason when I only do that, it gives me errors. 
from reportlab.lib import colors, utils
import csv
import numpy as np
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter, landscape
from reportlab.lib.units import inch
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle, Image, PageBreak, KeepTogether
from reportlab.lib.styles import ParagraphStyle as PS
from reportlab.lib.enums import TA_CENTER
from reportlab.platypus.paragraph import Paragraph
import matplotlib.pyplot as plt
import matplotlib as mpl

и вот ошибка, которую я получил, когда добавил пакеты, как указано выше:

raise ImportError("No module named %r" %subModuleName)
ImportError: No module named 'PyQt4.uic.port_v3.proxy_base'

Мой импорт слишком широк? Когда я позволил cx_freeze выбрать импорт, у меня возникла проблема с reportlab (и никаких ошибок при создании файла msi). Теперь выдает эту ошибку, когда я пытаюсь создать файл msi.


person mauve    schedule 20.08.2014    source источник


Ответы (1)


У меня возник этот вопрос, после того, как я удалил PyQt4 из пакетов, сборка прошла успешно!

person ZoneLo    schedule 15.08.2015