pyinstaller .exe 找不到 'dateutil.tz.__init__.tz'
pyinstaller .exe cannot find 'dateutil.tz.__init__.tz'
这是我第一次创建 .exe(或任何包)。尽管根据 the kivy-manual,我成功创建了 kivy-touchtracer 演示的 exe 文件。
我使用相同的方法从我的 kivy-app 创建了一个 .exe。它应该是 运行ning 仅在 windows(第一个里程碑)。
我想要的非 exe 版本 运行s。我可以设法创建一个 .exe 文件,但不知何故它不是 运行ning。
基本上程序应该收集一些数据,"calculate a bit around" 给定的数据,创建一些图(matplotlib)并创建一个报告-pdf (reportlab)。
我已经试过了:
- 将 dateutils 从 python/Lib/sitepackages/dateutil 复制到创建的 dist 目录中。 (由 reportlab 提供帮助)
- 将dateutil/tz/init中的'from .tz import *'行修改为'from tz import *'(去掉点)
他们看起来毫无用处...
我怎么能 运行 我的 exe?我错过了什么? (Matplotlib 在 pyinstaller 的 supported-package 列表中。)
OS: Win7
Python: 3.4
我的 cal.spec 文件:
# -*- mode: python -*-
from kivy.deps import sdl2, glew
block_cipher = None
a = Analysis(['C:\EZS-2G\main.py'],
pathex=['C:\EZS-2G\calApp'],
binaries=None,
datas=None,
hiddenimports=['cycler','pyparsing','setuptools','tkinter','PyPDF2','jinja2','sqlite3','markupsafe','PIL','tornado','pytz','dateutil','reportlab','numpy','matplotlib'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='Cal',
debug=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe, Tree('C:\EZS-2G\'),
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
strip=False,
upx=True,
name='Cal')
结果是我的 .kivy/log.txt:
[INFO ] Logger: Record log in C:\Users\kalibrierlabor\.kivy\logs\kivy_16-03-09_74.txt
[INFO ] Kivy: v1.9.1
[INFO ] Python: v3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]
[INFO ] Factory: 179 symbols loaded
[INFO ] Image: Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] OSC: using <thread> for socket
[INFO ] Window: Provider: sdl2
[INFO ] GL: GLEW initialization succeeded
[INFO ] GL: OpenGL version <b'3.3.0'>
[INFO ] GL: OpenGL vendor <b'NVIDIA Corporation'>
[INFO ] GL: OpenGL renderer <b'GeForce 210/PCIe/SSE2'>
[INFO ] GL: OpenGL parsed version: 3, 3
[INFO ] GL: Shading version <b'3.30 NVIDIA via Cg compiler'>
[INFO ] GL: Texture max size <8192>
[INFO ] GL: Texture max units <32>
[INFO ] Window: auto add sdl2 input provider
[INFO ] Window: virtual keyboard not allowed, single mode, not docked
[INFO ] Text: Provider: sdl2
[WARNING ] stderr: Traceback (most recent call last):
[WARNING ] stderr: File "<string>", line 58, in <module>
[WARNING ] stderr: File "C:\EZS-2G\CETAcalApp\dist\CETA-Cal\cls\plotting.py", line 5, in <module>
[WARNING ] stderr: import matplotlib.pyplot as plt
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\pyplot.py", line 36, in <module>
[WARNING ] stderr: from matplotlib.figure import Figure, figaspect
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\figure.py", line 40, in <module>
[WARNING ] stderr: from matplotlib.axes import Axes, SubplotBase, subplot_class_factory
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\axes\__init__.py", line 4, in <module>
[WARNING ] stderr: from ._subplots import *
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\axes\_subplots.py", line 10, in <module>
[WARNING ] stderr: from matplotlib.axes._axes import Axes
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\axes\_axes.py", line 22, in <module>
[WARNING ] stderr: import matplotlib.dates as _ # <-registers a date unit converter
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\dates.py", line 130, in <module>
[WARNING ] stderr: import dateutil.parser
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\dateutil\parser.py", line 43, in <module>
[WARNING ] stderr: from . import tz
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\dateutil\tz\__init__.py", line 1, in <module>
[WARNING ] stderr: from .tz import *
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\dateutil\tz\tz.py", line 17, in <module>
[WARNING ] stderr: from .__init__ import tzname_in_python2
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\dateutil\tz\__init__.py", line 1, in <module>
[WARNING ] stderr: from .tz import *
[WARNING ] stderr: ImportError: No module named 'dateutil.tz.__init__.tz'
我有同样的问题(也在 windows 7 和 Python 3.4 和 python-dateutil 版本 2.5 上)。我做了一些阅读,例如在 https://github.com/dateutil/dateutil/pull/202#issuecomment-192352290。像你一样,我尝试对 dateutil 包进行一些修改,但最后我只是用 pip 将包恢复到以前的版本,即 'pip install python-dateutil==2.4.2' 并解决了我的问题。
我有类似的问题。由于一切正常,我找到了一个解决方法:
import warnings
warnings.filterwarnings("ignore", category=UserWarning)
这是我第一次创建 .exe(或任何包)。尽管根据 the kivy-manual,我成功创建了 kivy-touchtracer 演示的 exe 文件。
我使用相同的方法从我的 kivy-app 创建了一个 .exe。它应该是 运行ning 仅在 windows(第一个里程碑)。
我想要的非 exe 版本 运行s。我可以设法创建一个 .exe 文件,但不知何故它不是 运行ning。
基本上程序应该收集一些数据,"calculate a bit around" 给定的数据,创建一些图(matplotlib)并创建一个报告-pdf (reportlab)。
我已经试过了:
- 将 dateutils 从 python/Lib/sitepackages/dateutil 复制到创建的 dist 目录中。 (由 reportlab 提供帮助)
- 将dateutil/tz/init中的'from .tz import *'行修改为'from tz import *'(去掉点)
他们看起来毫无用处...
我怎么能 运行 我的 exe?我错过了什么? (Matplotlib 在 pyinstaller 的 supported-package 列表中。)
OS: Win7
Python: 3.4
我的 cal.spec 文件:
# -*- mode: python -*-
from kivy.deps import sdl2, glew
block_cipher = None
a = Analysis(['C:\EZS-2G\main.py'],
pathex=['C:\EZS-2G\calApp'],
binaries=None,
datas=None,
hiddenimports=['cycler','pyparsing','setuptools','tkinter','PyPDF2','jinja2','sqlite3','markupsafe','PIL','tornado','pytz','dateutil','reportlab','numpy','matplotlib'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
exclude_binaries=True,
name='Cal',
debug=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe, Tree('C:\EZS-2G\'),
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
strip=False,
upx=True,
name='Cal')
结果是我的 .kivy/log.txt:
[INFO ] Logger: Record log in C:\Users\kalibrierlabor\.kivy\logs\kivy_16-03-09_74.txt
[INFO ] Kivy: v1.9.1
[INFO ] Python: v3.4.4 (v3.4.4:737efcadf5a6, Dec 20 2015, 20:20:57) [MSC v.1600 64 bit (AMD64)]
[INFO ] Factory: 179 symbols loaded
[INFO ] Image: Providers: img_tex, img_dds, img_gif, img_sdl2, img_pil (img_ffpyplayer ignored)
[INFO ] OSC: using <thread> for socket
[INFO ] Window: Provider: sdl2
[INFO ] GL: GLEW initialization succeeded
[INFO ] GL: OpenGL version <b'3.3.0'>
[INFO ] GL: OpenGL vendor <b'NVIDIA Corporation'>
[INFO ] GL: OpenGL renderer <b'GeForce 210/PCIe/SSE2'>
[INFO ] GL: OpenGL parsed version: 3, 3
[INFO ] GL: Shading version <b'3.30 NVIDIA via Cg compiler'>
[INFO ] GL: Texture max size <8192>
[INFO ] GL: Texture max units <32>
[INFO ] Window: auto add sdl2 input provider
[INFO ] Window: virtual keyboard not allowed, single mode, not docked
[INFO ] Text: Provider: sdl2
[WARNING ] stderr: Traceback (most recent call last):
[WARNING ] stderr: File "<string>", line 58, in <module>
[WARNING ] stderr: File "C:\EZS-2G\CETAcalApp\dist\CETA-Cal\cls\plotting.py", line 5, in <module>
[WARNING ] stderr: import matplotlib.pyplot as plt
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\pyplot.py", line 36, in <module>
[WARNING ] stderr: from matplotlib.figure import Figure, figaspect
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\figure.py", line 40, in <module>
[WARNING ] stderr: from matplotlib.axes import Axes, SubplotBase, subplot_class_factory
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\axes\__init__.py", line 4, in <module>
[WARNING ] stderr: from ._subplots import *
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\axes\_subplots.py", line 10, in <module>
[WARNING ] stderr: from matplotlib.axes._axes import Axes
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\axes\_axes.py", line 22, in <module>
[WARNING ] stderr: import matplotlib.dates as _ # <-registers a date unit converter
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\matplotlib\dates.py", line 130, in <module>
[WARNING ] stderr: import dateutil.parser
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\dateutil\parser.py", line 43, in <module>
[WARNING ] stderr: from . import tz
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\dateutil\tz\__init__.py", line 1, in <module>
[WARNING ] stderr: from .tz import *
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\dateutil\tz\tz.py", line 17, in <module>
[WARNING ] stderr: from .__init__ import tzname_in_python2
[WARNING ] stderr: File "C:\Python34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module
[WARNING ] stderr: exec(bytecode, module.__dict__)
[WARNING ] stderr: File "C:\Python34\lib\site-packages\dateutil\tz\__init__.py", line 1, in <module>
[WARNING ] stderr: from .tz import *
[WARNING ] stderr: ImportError: No module named 'dateutil.tz.__init__.tz'
我有同样的问题(也在 windows 7 和 Python 3.4 和 python-dateutil 版本 2.5 上)。我做了一些阅读,例如在 https://github.com/dateutil/dateutil/pull/202#issuecomment-192352290。像你一样,我尝试对 dateutil 包进行一些修改,但最后我只是用 pip 将包恢复到以前的版本,即 'pip install python-dateutil==2.4.2' 并解决了我的问题。
我有类似的问题。由于一切正常,我找到了一个解决方法:
import warnings
warnings.filterwarnings("ignore", category=UserWarning)