Я не могу создать .exe для самого простого примера «hello world»

#python-3.x #py2exe

#python-3.x #py2exe

Вопрос:

Я успешно использовал py2exe для предыдущих проектов на предыдущих машинах сборки, но теперь я все установил с нуля и не могу запустить простейший пример:

setup.py:

 from distutils.core import setup
import py2exe
  
setup(console=['hello.py'])
 

hello.py:

 print("Hello World") 
 

Команда: python3 setup.py py2exe
Вывод:

 running py2exe

  1 missing Modules
  ------------------
? _posixshmem                         imported from multiprocessing.resource_tracker, multiprocessing.shared_memory
Building 'disthello.exe'.
error: [WinError 87] The parameter is incorrect.
 

desthello.exe генерируется (37 КБ!), Но выдает следующую ошибку при запуске:

 Could not locate script resource:The specified resource type cannot be found in the image file.
FATAL ERROR: Could not locate script
 

Версии, которые я установил, следующие:

 python --version
Python 3.8.6

pip freeze
cachetools==4.1.1
future==0.18.2
numpy==1.19.3
opencv-python==4.4.0.46
pefile==2019.4.18
py2exe==0.10.1.0
pyreadline==2.1
pywin32==300

systeminfo
OS Name:                   Microsoft Windows 10 Pro
OS Version:                10.0.19041 N/A Build 19041
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free
Hotfix(s):                 6 Hotfix(s) Installed.
                           [01]: KB4580419
                           [02]: KB4561600
                           [03]: KB4577266
                           [04]: KB4580325
                           [05]: KB4586864
                           [06]: KB4586781
Hyper-V Requirements:      A hypervisor has been detected. Features required for Hyper-V will not be displayed.

 

Я знаю, что явно происходит что-то странное (я уже сталкивался с проблемой с «numpy» здесь: https://developercommunity.visualstudio.com/content/problem/1207405/fmod-after-an-update-to-windows-2004-is-causing-a.html ) … но я не совсем понимаю, что это такое.

Спасибо!

— Mac

Ответ №1:

Вы просто неправильно ввели флаг командной строки, должно быть: python setup.py py2exe .
Отлично работает для меня на Win7, Python 3.8.0:

 (py38) λ python setup.py py2exe
running py2exe

  2 missing Modules
  ------------------
? _posixshmem                         imported from multiprocessing.resource_tracker, multiprocessing.shared_memory
? readline                            imported from cmd, code, pdb
Building 'disthello.exe'.
Building shared code archive 'distlibrary.zip'.
Copy c:usersf3kenvspy38scriptspython38.dll to dist
...
Copy DLL C:Python38DLLslibffi-7.dll to dist

C:temp
(py38) λ disthello.exe
Hello World
 

Комментарии:

1. Извинения — это была опечатка при копировании сообщения. Я правильно ввел его в командной строке. Я отредактировал сообщение, чтобы исправить мою опечатку.