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不同,该包可能不会导致任何问题,因为它使用正常的导入调用。