Python 导入错误:没有名为Common的模块-py2exe存在问题

Python 导入错误:没有名为Common的模块-py2exe存在问题,python,dll,exe,py2exe,reportlab,Python,Dll,Exe,Py2exe,Reportlab,我有一个脚本,它是这样开始的,有许多导入: from reportlab.graphics import shapes from reportlab.lib.utils import ImageReader from reportlab.graphics import barcode from reportlab.lib.units import mm from reportlab.pdfbase.pdfmetrics import stringWidth import reportlab.rl

我有一个脚本,它是这样开始的,有许多导入:

from reportlab.graphics import shapes
from reportlab.lib.utils import ImageReader
from reportlab.graphics import barcode
from reportlab.lib.units import mm
from reportlab.pdfbase.pdfmetrics import stringWidth
import reportlab.rl_settings
import PIL
from cStringIO import StringIO
import labels
import pyodbc
import pandas
from os.path import expanduser
from time import sleep
import sys
我与py2exe进行了大量的斗争,甚至无法获得一个可执行文件。我最终使用以下设置脚本管理它(其中大部分只是复制和粘贴类似问题,并建议使用stackoverflow)

我确信我的剧本不雅。它有三个连接的define函数和一个最终输出

try:
    makeyourlabels()
except:
    Print "Sorry, something went wrong."
我在运行文件时出错:

Traceback (most recent call last):
  File "working.py", line 3, in <module>
  File "reportlab\graphics\barcode\__init__.pyc", line 72, in <module>
  File "reportlab\graphics\barcode\__init__.pyc", line 42, in _reset
  File "reportlab\graphics\barcode\widgets.pyc", line 162, in <module>
  File "reportlab\graphics\barcode\widgets.pyc", line 95, in _BCW
  File "reportlab\lib\utils.pyc", line 243, in rl_exec
  File "<string>", line 1, in <module>
  File "<string>", line 1, in <module>
ImportError: No module named common
回溯(最近一次呼叫最后一次):
文件“working.py”,第3行,在
文件“reportlab\graphics\barcode\\ u_init__.pyc”,第72行,在
文件“reportlab\graphics\barcode\\ uuuuuu init\ uuuuuuu.pyc”,第42行,在\u reset中
文件“reportlab\graphics\barcode\widgets.pyc”,第162行,在
文件“reportlab\graphics\barcode\widgets.pyc”,第95行,在_BCW中
rl_exec中的文件“reportlab\lib\utils.pyc”,第243行
文件“”,第1行,在
文件“”,第1行,在
ImportError:没有名为common的模块

如果有人能理解这一切并运行我的.exe,我将万分感激

由于问题中没有可测试的代码,我不能保证这会解决您的问题,但我可以解释为什么会出现此错误。这是因为
py2exe
没有将
reportlab.graphics.barcode.common
捆绑到.exe中

我是如何知道的,我跟踪了回溯,查看Reportlab在
rl_exec
调用中做了什么,结果是使用
exec
进行调用:

from reportlab.graphics.barcode.common import I2of5
但是,由于导入只动态执行
py2exe
,因此不知道是否需要此包


那么你如何修复它呢?只需将
'reportlab.graphics.barcode.common'
添加到您的软件包列表中,这将有助于
py2exe
找到它正在查找的模块。

由于问题中没有可测试的代码,我不能保证这将解决您的问题,但我可以解释您为什么会出现此错误。这是因为
py2exe
没有将
reportlab.graphics.barcode.common
捆绑到.exe中

我是如何知道的,我跟踪了回溯,查看Reportlab在
rl_exec
调用中做了什么,结果是使用
exec
进行调用:

from reportlab.graphics.barcode.common import I2of5
但是,由于导入只动态执行
py2exe
,因此不知道是否需要此包


那么你如何修复它呢?只需将“reportlab.graphics.barcode.common”添加到您的软件包列表中,这将有助于找到它要查找的模块。

为B8vrede干杯。这似乎解决了那个特定的错误,但我只是得到了另一个错误,另一个丢失的模块是reportlab包的一部分。我可以做些什么来导入所有必要的模块吗?我认为对您来说最好的事情是确保您的导入是特定的,因此不是从reportlab.graphics导入形状,而是从reportlab.graphics.shapes导入图形(或从形状中需要的任何东西)。这可以防止加载所有不必要的类,这些类都有可能导致导入错误的依赖项。我将尝试一下。我导入了程序包pylabels(),因此我希望其中没有导入可能会导致问题的函数。与Reportlab.Cheers B8vrede不同,该程序包可能不会导致任何问题,因为它使用正常的导入调用。这似乎解决了那个特定的错误,但我只是得到了另一个错误,另一个丢失的模块是reportlab包的一部分。我可以做些什么来导入所有必要的模块吗?我认为对您来说最好的事情是确保您的导入是特定的,因此不是从reportlab.graphics导入形状,而是从reportlab.graphics.shapes导入图形(或从形状中需要的任何东西)。这可以防止加载所有不必要的类,这些类都有可能导致导入错误的依赖项。我将尝试一下。我导入了pylabels()包,因此我希望其中没有任何导入函数会导致问题。与Reportlab不同,该包可能不会导致任何问题,因为它使用正常的导入调用。