Problème avec pyinstaller

Résolu/Fermé
Python - Modifié le 19 juil. 2021 à 12:34
mamiemando Messages postés 31741 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 24 novembre 2022 - 22 juil. 2021 à 11:54
Bonjour,

J'ai fait un script python (de test) et j'aimerais bien le mettre en exécutable (pour tester encore une fois) donc j'installe le module pyinstaller correctement. je vais dans mon fichier test, puis j'éxécute avec
cmd
. Je fais
pyinstaller test.py
et ça ne fonctionne pas voici le message d'erreur :

C:\Users\maxmo\OneDrive\Bureau\test>pyinstaller test.py
90 INFO: PyInstaller: 4.4
90 INFO: Python: 3.9.5
146 INFO: Platform: Windows-10-10.0.19042-SP0
151 INFO: wrote C:\Users\maxmo\OneDrive\Bureau\test\test.spec
154 INFO: UPX is not available.
156 INFO: Extending PYTHONPATH with paths
['C:\\Users\\maxmo\\OneDrive\\Bureau\\test',
'C:\\Users\\maxmo\\OneDrive\\Bureau\\test']
Traceback (most recent call last):
File "c:\users\maxmo\appdata\local\programs\python\python39-32\lib\runpy.py", line 197, in _run_module_as_main
return _run_code(code, main_globals, None,
File "c:\users\maxmo\appdata\local\programs\python\python39-32\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\maxmo\AppData\Local\Programs\Python\Python39-32\Scripts\pyinstaller.exe\__main__.py", line 7, in <module>
File "c:\users\maxmo\appdata\local\programs\python\python39-32\lib\site-packages\PyInstaller\__main__.py", line 126, in run
run_build(pyi_config, spec_file, **vars(args))
File "c:\users\maxmo\appdata\local\programs\python\python39-32\lib\site-packages\PyInstaller\__main__.py", line 65, in run_build
PyInstaller.building.build_main.main(pyi_config, spec_file, **kwargs)
File "c:\users\maxmo\appdata\local\programs\python\python39-32\lib\site-packages\PyInstaller\building\build_main.py", line 758, in main
build(specfile, kw.get('distpath'), kw.get('workpath'), kw.get('clean_build'))
File "c:\users\maxmo\appdata\local\programs\python\python39-32\lib\site-packages\PyInstaller\building\build_main.py", line 705, in build
exec(code, spec_namespace)
File "C:\Users\maxmo\OneDrive\Bureau\test\test.spec", line 7, in <module>
a = Analysis(['test.py'],
File "c:\users\maxmo\appdata\local\programs\python\python39-32\lib\site-packages\PyInstaller\building\build_main.py", line 220, in __init__
self.hookspath += list(entry_point.load()())
File "c:\users\maxmo\appdata\local\programs\python\python39-32\lib\site-packages\pkg_resources\__init__.py", line 2450, in load
return self.resolve()
File "c:\users\maxmo\appdata\local\programs\python\python39-32\lib\site-packages\pkg_resources\__init__.py", line 2456, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "C:\Users\maxmo\AppData\Roaming\Python\Python39\site-packages\pygame\__init__.py", line 81, in <module>
from pygame.base import * # pylint: disable=wildcard-import; lgtm[py/polluting-import]
ModuleNotFoundError: No module named 'pygame.base'


et voici mon script du fichier
test.py
:

import game
import tkinter

def open():
    game.run()


app = tkinter.Tk()
app.title("Mon app tkinter")
app.geometry("300x100")

lb = tkinter.Label(app, text="Cliquer sur le bouton...").pack()
bt = tkinter.Button(app, text="Hack tkinter", command=open).pack()

app.mainloop()


et du fichier
game.py
:

import pygame

def run():
    pygame.init()

    screen = pygame.display.set_mode([400, 400])

    launched = True
    while launched:
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                launched = False

        screen.fill((12, 25, 38))
        pygame.draw.line(screen, (128, 25, 240), [10, 10], [280, 310], 3)
        pygame.display.flip()

    pygame.quit()


Merci de m'aider.

3 réponses

mamiemando Messages postés 31741 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 24 novembre 2022 7 478
19 juil. 2021 à 12:45
Bonjour,

Ton erreur n'est pas lié à ton code lui-même, mais à la manière dont tu utilises
pyinstaller
.
  • Assure-toi que le
    pygame
    est bien installé (par exemple en lançant ton code python normalement) ;
  • Regarde cette page pour avoir davantage d'information de debug et au besoin précise le chemin vers pygame avec l'option
    --paths
    ;
  • Regarde cette page pour l'option
    --hidden-import
    et au besoin passe par un venv (voir message #14) ;


Bonne chance
1
Merci ça a marché !
0
mamiemando Messages postés 31741 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 24 novembre 2022 7 478 > Python_2522
22 juil. 2021 à 11:54
Parfait, je bascule ton sujet en résolu :-)
0