Ничего не происходит в cmd после выполнения cx_Freeze setup.py - PullRequest
0 голосов
/ 04 октября 2019

Я хочу преобразовать один из моих файлов .py (который использует модуль "pygame", а этот модуль использует "pkg_resources", pyinstaller не поддерживает "pkg_resources", поэтому я пробовал cx_Freeze) в файлы .exe с помощью cx_Freeze иесли я запускаю setup.py для модуля cx_Freeze, чтобы начать преобразование, в командной строке просто отображается пустая строка, и ничего не происходит.

C:\Users\PATH\ascension_card_game>python setup.py build

C:\Users\PATH\ascension_card_game>

Я уже пытался использовать py2exe (что приводит к тому же результату,это может быть проблема с тем, как я использую команды cmd / python) и pyinstaller, и искал, если у кого-то еще была такая же проблема или другие модули .py to .exe, но ничего не работало. Я также установил путь к своей папке python в «переменных среды» (см. Изображение), и я попытался установить путь вручную в cmd с помощью «SET PATH = ...».

Environment Variable

То есть setup.py :

from cx_Freeze import setup, Executable

setup(name = "Ascension: Card Game",
      version = "0.1",
      description = "A card game",
      executables = [Executable("ascension.py", base=base)])

Я ожидал, что он сгенерирует файл .exe в папке с другим материалом, но ничегослучилось вообще. Здесь также есть руководство по использованию cx_Freeze: https://pythonprogramming.net/converting-python-scripts-exe-executables/

Обновление

Если я использую приглашение anaconda для запуска файла setup.py с "python setup.py build", оно показывает мне этоошибка:

Traceback (most recent call last):
  File "setup.py", line 18, in <module>
    executables = executables)
  File "C:\Users\Maxim Stanko\Desktop\programming\Python\Games\ascension_card_game\cx_Freeze\dist.py", line 348, in setup
    distutils.core.setup(**attrs)
  File "C:\Users\Maxim Stanko\Miniconda\lib\distutils\core.py", line 148, in setup
    dist.run_commands()
  File "C:\Users\Maxim Stanko\Miniconda\lib\distutils\dist.py", line 966, in run_commands
    self.run_command(cmd)
  File "C:\Users\Maxim Stanko\Miniconda\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Users\Maxim Stanko\Miniconda\lib\distutils\command\build.py", line 135, in run
    self.run_command(cmd_name)
  File "C:\Users\Maxim Stanko\Miniconda\lib\distutils\cmd.py", line 313, in run_command
    self.distribution.run_command(command)
  File "C:\Users\Maxim Stanko\Miniconda\lib\distutils\dist.py", line 985, in run_command
    cmd_obj.run()
  File "C:\Users\Maxim Stanko\Desktop\programming\Python\Games\ascension_card_game\cx_Freeze\dist.py", line 218, in run
    zipExcludePackages = self.zip_exclude_packages)
  File "C:\Users\Maxim Stanko\Desktop\programming\Python\Games\ascension_card_game\cx_Freeze\freezer.py", line 114, in __init__
    for n in self._GetDefaultBinPathExcludes() + binPathExcludes]
  File "C:\Users\Maxim Stanko\Desktop\programming\Python\Games\ascension_card_game\cx_Freeze\freezer.py", line 239, in _GetDefaultBinPathExcludes
    import cx_Freeze.util
ModuleNotFoundError: No module named 'cx_Freeze.util'

Нет модуля cx_Freeze.util. Хотя я пытался переустановить cx_Freeze и python 3.6, он все равно не работал.

Спасибо за помощь

1 Ответ

0 голосов
/ 04 октября 2019

Наконец-то все получилось: это не проблема cmd или моего кода, я просто установил новейшую версию python (3.7) и настроил переменные окружения, чтобы только те, которые есть в python 3.7, были там. Теперь это работает просто отлично! Спасибо за помощь:)

...