python - python - cx_Freeze ImportError
问题描述
我正在使用 cx_Freeze 将我的游戏转换为可执行文件,并且一直收到此错误:
Traceback (most recent call last):
File "setup.py", line 15, in <module>
executables=[Executable('racecar.py')])
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python3732\lib\site-packages\cx_Freeze\dist.py", line 349, in setup
distutils.core.setup(**attrs)
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\distutils\core.py", line 148, in setup
dist.run_commands()
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\distutils\dist.py", line 966, in run_commands
self.run_command(cmd)
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\distutils\command\build.py", line 135, in run
self.run_command(cmd_name)
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\distutils\cmd.py", line 313, in run_command
self.distribution.run_command(command)
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\distutils\dist.py", line 985, in run_command
cmd_obj.run()
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\site-packages\cx_Freeze\dist.py", line 219, in run
freezer.Freeze()
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\site-packages\cx_Freeze\freezer.py", line 624, in Freeze
self.finder = self._GetModuleFinder()
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\site-packages\cx_Freeze\freezer.py", line 347, in _GetModuleFinder
finder.IncludePackage(name)
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\site-packages\cx_Freeze\finder.py", line 659, in IncludePackage
module = self._ImportModule(name, deferredImports)
File "C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\lib\site-packages\cx_Freeze\finder.py", line 351, in _ImportModule
raise ImportError("No module named %r" % name)
ImportError: No module named 'Pillow'
这是我的 setup.py:
from cx_Freeze import setup, Executable
import os
os.environ['TCL_LIBRARY'] = r'C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\tcl\tcl8.6'
os.environ['TK_LIBRARY'] = r'C:\Users\Shaunak.Warty22\AppData\Local\Programs\Python\Python37-32\tcl\tk8.6'
options = {'packages':['pygame', 'Pillow'],
'include_files':['Lobster-Regular.ttf', 'NosiferCaps-Regular.ttf', 'racecar.png']}
setup(
name = 'Racecar Dodge',
version = 0.1,
description = 'Use your racecar to dodge obstacles and try to get as many blocks dodged as possible!',
options={'build_exe': options},
executables=[Executable('racecar.py')])
我在我的电脑上安装了 Pillow,并且在 setup.py 中有它,所以我对为什么会收到错误感到困惑。
解决方案
您在 'options' 中将 'Pillow' 作为一个包列出,导致 cx_freeze 尝试导入 'Pillow' - 但是,这应该是 'PIL',因为这是模块的名称。“枕头”只是包裹的人名。
options = {'packages':['pygame', 'PIL'],
推荐阅读
- c# - 我正在使用 Razor mvc,我想在单击名为“UploadedFiles”的文件夹中的操作链接后显示图像和文件
- javascript - AngularJS ui.bootstrap 模态对话框未显示
- c# - 如何在列表中的最后一个负值之后获得正值?
- javascript - 名为“na......”的路线不存在。$router.push() 转到错误的路径 Vue Js
- c# - 找到未映射的成员( DateTime )
- google-apps-script - 使用带有静态 IP 谷歌脚本的 UrlFetch
- html - 尝试在响应的同时在每个旁边放置一个 iframe 和一个 div
- postgresql - 尽管一切似乎都正确,为什么这段代码给了我错误?
- python - 是否所有标准库 Python 接口都记录在一个地方?
- ssl - IBM Cloud - Cloud Foundry - 在 mybluemix.net 域中禁用 SSL 重新协商