Foros Python

Versión completa: PyInstaller error: startswith first arg must be str or a tuple of str, not ...
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola estoy intentado reproducir un video utilizando el modulo moviepy, el cuál funciona correctamente en el IDLL pero al convertirlo a exe, me aparece el error mostrado. Espero me puedan ayudar, este código es pequeño. El video no lo subo pues es pesado, pero pueden tomar cualquier video y ponerle el nombre rrr.mp4 y colocarlo en la carpeta donde coloquen el código y funcionara, se le agradece su ayuda.

código:

from moviepy.editor import * #debes instalar moviepy and pygame
import pygame

clip = VideoFileClip('rrr.mp4') #si aca le pones: .resize(0.5) la pantalla salda la mitad  del tamaño original, si pones: .resize((600,500)) es tamaño
clip.preview()

pygame.quit()


error luego de convertirlo a exe:
Traceback (most recent call last):
  File "C:\Users\Shon\AppData\Local\Programs\Python\Python39\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth__tkinter.py", line 28, in <module>
    raise FileNotFoundError('Tcl data directory "%s" not found.' % (tcldir))
FileNotFoundError: Tcl data directory "C:\Users\Shon\Desktop\videos\tcl" not found.
[14220] Failed to execute script 'pyi_rth__tkinter' due to unhandled exception!
Hola.

¿Es exactemente ese el código que te arroja un error? Porque parece haber algún problema con Tk, que aparentemente no estás usando. ¿Tenés una carpeta llamada "C:\Users\Shon\Desktop\videos\tcl"?

Saludos
Ups, perdón me eh equivocado, el error es el siguiente (Nota: anexo el link donde podrá encontrar el código, el archivo exe y el error; además este error apareció luego de formatear mi ordenador, pues antes de formatearla corriá normal, y creo que tenía que ver con el hook de pyinstaller, pues recuerdo que copie algo en la carpeta de Python pero ya no recuerdo, agradecería que me pueda ayudar):
https://mega.nz/folder/7gxiSZia#0WHGPhCt0BG0C7syeShB-A

Error:
Traceback (most recent call last):
File "videos.py", line 2, in <module>
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "moviepy\editor.py", line 48, in <module>
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "PyInstaller\loader\pyimod03_importers.py", line 546, in exec_module
File "moviepy\video\fx\all\__init__.py", line 13, in <module>
File "moviepy\video\fx\all\__init__.py", line 13, in <listcomp>
File "C:\Users\Shon\AppData\Local\Programs\Python\Python39\Lib\site-packages\PyInstaller\hooks\rthooks\pyi_rth_pkgutil.py", line 71, in _pyi_pkgutil_iter_modules
assert pkg_path.startswith(SYS_PREFIX)
TypeError: startswith first arg must be str or a tuple of str, not PureWindowsPath
[3580] Failed to execute script 'videos' due to unhandled exception!
Hola. Eso parece ser un bug de PyInstaller más que algún problema con tu aplicación. ¿Qué versión de PyInstaller tenés? Probá instalando una versión anterior:

Código:
pip uninstall PyInstaller
pip install PyInstaller==4.3

Saludos
Muchas gracias estimado Francisco, me funciono, la versión que tenia era pip install PyInstaller==4.4.
Se hace notar que al instalar la versión 4.3 deben desinstalar el antivirus para evitar que les salga este error de instalación:
ERROR: Could not build wheels for PyInstaller which use PEP 517 and cannot be installed directly