简体   繁体   中英

"Failed to execute script " pyinstaller

I have a python code that I wanted to turn into an exe.
I used pyinstaller with: pyinstaller --onefile -w script.py
After it finished making the exe file I double clicked the file but I got "Failed to execute script".

I also tried running it from the cmd but it gives the same fatal error.

Stuff to add:
The code imports a couple of files packages including a python code I made, as well as it makes files referenced to it's location.

Is there something I'm doing wrong?

the script has those imports:

import socket
import os
from PIL import ImageGrab
import cv2
import time
import json
import myFile

I ran the code under cmd and it gives this error:

  File "script.py", line 3, in <module>
    from PIL import ImageGrab
ModuleNotFoundError: No module named 'PIL'

Might be unrelated but now that I tried to do pyinstaller --onefile -w client.py .
After I ran it windows defender found this inside:
在此处输入图像描述


after running it in the terminal in pycharm with:

pyinstaller --onefile --hidden-import=PIL --hidden-import=Pillow --hidden-import=pynput client.py

I get this error (note that i moved it from the dist directory to the main one):

Traceback (most recent call last):
  File "client.py", line 7, in <module>
    import myFile
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "myFile.py", line 1, in <module>
    from pynput import mouse, keyboard
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "pynput\__init__.py", line 40, in <module>
  File "PyInstaller\loader\pyimod03_importers.py", line 540, in exec_module
  File "pynput\keyboard\__init__.py", line 31, in <module>
  File "pynput\_util\__init__.py", line 82, in backend
ImportError
[13364] Failed to execute script client

This may be due to pyinstaller not being able to properly find your dependencies and skipping some packages.

To fix any error like ModuleNotFoundError: No module named 'PIL' just add it as a hidden import:

pyinstaller --onefile --hidden-import=PIL -w script.py

For the second error this is a known issue with pyinstaller and pynput. Find here some explanation.

The TLDR of it seems to be that you need to add --hidden-import=pynput.mouse._win32 --hidden-import=pynput.keyboard._win32 --hidden-import=pynput._util._win32 and any other sub-packages that give you errors.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM