大家好,感谢您花时间帮助我。
我目前正在尝试使用PyInstaller(3.1)为我的Kivy(1.9.1)应用程序创build一个Windows包。 我遵循文档的指示,但无法使其工作。 所以我试着用示例程序“touchtracer”给出了相同的结果。 我得到以下错误:
Traceback (most recent call last): File "<string>", line 11, in <module> File "f:\temp\pip-build-1elcla\pyinstaller\PyInstaller\loader\pyimod03_importers.py", line 389, in load_module File "C:\Python27\lib\site-packages\pkg_resources\__init__.py", line 48, in <module> from pkg_resources.extern import six File "C:\Python27\lib\site-packages\pkg_resources\extern\__init__.py", line 60, in load_module "distribution.".format(**locals()) ImportError: The 'six' package is required; normally this is bundled with this package so if you get this warning, consult the packager of your distribution. pyi_rth_pkgres returned -1
这是我的.spec文件:
# -*- mode: python -*- from kivy.deps import sdl2, glew block_cipher = None a = Analysis(['C:\\Python27\\share\\kivy-examples\\demo\\touchtracer\\main.py'], pathex=['C:\\Users\\PC\\Documents\\Njord\\njord\\Nouveau dossier'], binaries=None, datas=None, hiddenimports=[], 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='touchtracer', debug=False, strip=False, upx=True, console=True ) coll = COLLECT(exe, Tree('C:\\Python27\\share\\kivy-examples\\demo\\touchtracer\\'), a.binaries, a.zipfiles, a.datas, *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)], strip=False, upx=True, name='touchtracer')
我已经试过了用pip和wheel的方法安装的Kivy软件包,没有成功。 有没有人有解释?
再次感谢。
我设法找到解决我的问题的方法。 我试图将“六”包添加到hidden_imports,但这是“包装”包丢失。
然后,我安装了setuptools 19.4,安装简单,而且这次,即使在我的hidden_imports中有“six”,我得到了第一个错误,再加上了很多警告。 我环顾四周,有几个人说setuptools 19.4有问题,应该恢复到19.2。 我做了它,然后是kivy.app失踪,但这是进步。
我将kivy添加到spec文件的hidden_imports中,导致另一个错误,说我的某个模块有一个属性错误。 我只是不得不添加其他依赖项(sqlalchemy,sqlalchemy.orm,uuid)。
快速回顾一下:如果您安装了setuptools,请确保它是19.2。 将外部依赖关系添加到hidden_imports,包括kivy。
我不得不添加这条线来解决这个问题。
hiddenimports=['six','packaging','packaging.version','packaging.specifiers'],