Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

696
Visualizações
¿Cuál es el equivalente de add-data (Pyinstaller) para Nuitka?

Estoy tratando de compilar un archivo python con Nuitka en lugar de Pyinstaller. Todo va muy bien excepto por el hecho de que no entiendo cómo debo agregar otro archivo de datos al archivo de python.

El problema

Si quiero agregar una imagen a mi archivo python en Pyinstaller (en Windows), haría lo siguiente:

 wine /root/.wine/drive_c/Python27/pyinstaller.exe --add-data "/root/Downloads/car.jpg;." --onefile --noconsole --icon /root/Downloads/icon.ico pythonfile.py

Ahora, si abriera este archivo exe, ejecutaría el archivo python y abriría el archivo car.jpg.

Quiero hacer algo similar usando Nuitka. Cuando miré la documentación de Nuitka, vi que probablemente necesitaba usar el --include-data-file=<source>=<target> .

Intenté esto y no dio errores, pero cuando abro el archivo exe creado, no abre el archivo dado. Todos los demás argumentos funcionaron como quería, por lo que solo el argumento --include-data-file no da el resultado deseado

Este es el comando Nuitka que probé:

 .\python.exe -m nuitka --mingw64 .\pythonprogram.py --standalone --onefile --windows-icon-from-ico=pdf.ico --windows-disable-console --include-data-file=C:\Users\User\AppData\Local\Programs\Python\Python39\*.pdf=mypdf.pdf

Mis preguntas):

  • ¿Estoy usando el argumento correcto?
  • ¿Es esto posible con Nuitka?
  • ¿Cómo solucionaría mi problema?

¡Gracias por adelantado!

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

En primer lugar, cuando encuentre un comportamiento inesperado en Nuitka (en este caso, esperaría que se abriera un archivo, lo cual no sucedió) recomiendo eliminar el --windows-disable-console y observar la salida del terminal; sin él, la depuración del programa compilado es prácticamente imposible. También puede obtener mucha información analizando la salida de Nuitka durante la transpilación y la compilación (por ejemplo, puede aparecer una advertencia informándole sobre la inclusión del complemento de numpy para agregar soporte para el módulo numpy).

Ahora, pasando a tus preguntas:

  • ¿Estoy usando el argumento correcto?

Sí, el argumento --include-data-file=<source>=<target> es correcto si lo que desea es incrustar un archivo.

Sin embargo, lo que es muy importante cuando se trata de programas compilados con el argumento --onefile es cómo se cargan los archivos internamente , en los archivos .py.

Siento que lo mejor que puedo hacer es mostrar un ejemplo propio (estoy usando pygame para mi proyecto, pero esta forma de cargar archivos debería funcionar en cualquier circunstancia):

 import os import pygame def load_file(file_name: str) -> str: return os.path.join(os.path.dirname(__file__), file_name) image_1_sprite = pygame.image.load(load_file("textures/image_1.png"))

Entonces usaría Nuitka como tal: python -m nuitka --onefile --include-data-dir=../workingdir/textures=textures main.py o, si desea incluir solo un archivo, python -m nuitka --onefile --include-data-file=../workingdir/textures/image_1.png=textures/image_1.png main.py , donde workingdir es el directorio en el que reside main.py (recomiendo usar rutas relativas para hacer el repositorio portátil, porque si alguien descargara su código fuente y lo guardara, por ejemplo, en el disco duro D:\, el comando ejecutado fallaría).

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda