1
我有开始喜欢这个有很多进口脚本的问题:导入错误:没有模块命名公共 - 与py2exe
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)。
from distutils.core import setup
import distutils
import py2exe
import sys
import zmq
import os
sys.setrecursionlimit(5000)
distutils.core.setup(
options = {
"py2exe": {
"dll_excludes": ["MSVCP90.dll"]
}
},
)
sys.path.append('C:\\WINDOWS\\WinSxS\\x86_microsoft.vc90.crt_1fc8b3b9a1e18e3b_9.0.30729.4148_none_5090ab56bcba71c2')
packages=[
'reportlab',
'reportlab.graphics'
'reportlab.lib.utils'
'reportlab.rl_settings'
'reportlab.lib.units'
'reportlabl.pdfbase.pdfmetrics',
],
os.environ["PATH"] = \
os.environ["PATH"] + \
os.path.pathsep + os.path.split(zmq.__file__)[0]
setup(console=[{"script": "working.py"}],
options={
"py2exe": {
"includes":
["zmq.utils", "zmq.utils.jsonapi",
"zmq.utils.strtypes"] } })
我确定我的脚本不雅。它有三个连接的定义函数和一个最终输出。
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
如果任何人都可以做的这一切任何意义,让我的.exe文件运行时,我将是有史以来不胜感激!
干杯B8vrede。这似乎解决了这个特定的错误,但我只是另一个错误,作为reportlab软件包的一部分,另一个缺失的模块。我能做些什么来导入所有必要的模块? –
我认为你的情况最好的办法是确保你的导入是特定的,所以不是'从reportlab.graphics导入形状',而是'从reportlab.graphics.shapes导入绘图'(或任何你需要的形状)。这可以防止加载所有不必要的类,这些类都有可能导致导入错误的依赖关系。 – B8vrede
我会试试看。我导入包pylabels(https://github.com/bcbnz/pylabels),所以我希望没有任何内容导入可能导致问题的函数。 –