python - cx_Freeze ImportError - PullRequest
       9

python - cx_Freeze ImportError

0 голосов
/ 29 ноября 2018

Я использую 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')])

Iна моем компьютере установлена ​​подушка Pillow, и она у меня есть в файле setup.py, поэтому я не понимаю, почему я получаю ошибку.

1 Ответ

0 голосов
/ 29 ноября 2018

Вы указали 'Pillow' как пакет в 'options', в результате чего cx_freeze попытается импортировать 'Pillow' - однако вместо этого это должен быть 'PIL', поскольку это имя модуля.«Подушка» - это просто человеческое имя для упаковки.

options = {'packages':['pygame', 'PIL'],

...