Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Cum curat gletul de pe perete

Muzica trance

Soluție incalzire apartament...

Culori fire la boxele de jogger
 Autorizatie Birou Acte Auto

Parbriz defect

Ajutor cercetare lucrare de diser...

M-am culcat cu un tip și apo...
 Facultate din Bucuresti posibil o...

Eroare steering

Recomandare service pentru repara...

Premier Energy se listeaza la bursa
 Unde recomandati un CT cu Casa de...

Adaptare masina pentru o persoana...

Bios laptop Myria MY8315

Folie display laptop in Bucuresti?
 

Python 3.6 - .exe build with cx_Freeze

- - - - -
  • Please log in to reply
6 replies to this topic

#1
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
Salutări!

Am mai multe scripturi în python 3.6 și am nevoie să-mi generez executabile pe baza acestora.
Din câte am citit pentru versiunea asta de python, cea mai nimerită variantă pentru a face asta este folosind modulul cx_Freeze.

Funcționează totul bine, doar că în momentul în care se creează build-ul care conține și executabilul de care am eu nevoie, sunt generate și fișiere adiționale care țin locul versiunii de python de care windows-ul ar avea nevoie pentru a rula executabilul respectiv.

Așadar, pentru un script .py de 5 Kb sunt generate 10 Mb de fișiere, fără de care, executabilul nu funcționează.

Problema mea este că am o mulțime de astfel de scripturi pe care trebuie să le transform în .exe și nu mă avantajează deloc faptul că pentru fiecare script eu consum încă 10-12 Mb de fiecare dată.
Am observat însă că foarte multe dintre fișierele generate sunt asemănătoare, dacă nu chiar identice.

Întrebarea mea pentru voi, cei care poate ați mai lucrat cu cx_Freeze, este dacă știți vreo modalitate de a reduce dimensiunea build-ului sau de a folosi aceleași fișiere în cadrul mai multor .exe-uri? Sau poate cunoașteți vreo variantă mai bună de a face scripturile executabile decât cx_Freeze.

PS. În momentul de față structura fișierelor este cam așa (vezi atașamentul).

Mulțumesc!

Attached Files


Edited by vlad29marko, 15 August 2017 - 11:08.


#2
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,259
  • Înscris: 24.02.2007

View Postvlad29marko, on 15 august 2017 - 11:04, said:

sau de a folosi aceleași fișiere în cadrul mai multor .exe-uri?

Ai incercat si n-a mers?

#3
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
Multe dintre ele conțin apeluri explicite către funcții din interiorul .exe-ului meu, deci sunt dependente.
Mă gândeam că poate recunoașteți fișierele/folderele respective și puteți să-mi spuneți dacă aș putea chiar să le elimin.

Ca să le verific la mânuță, pe rând, care și cum diferă, vă dați seama că ar dura foarte mult. De-aia am apelat la experiența voastră.

Sau poate pot face build-ul cu cx_Freeze în alt mod și nu știu eu.

Edited by vlad29marko, 15 August 2017 - 13:00.


#4
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
Soluția mea:
Am instalat Total Commander și am făcut un compare by content. Am observat că, după cum bănuiam, foarte multe fișiere sunt indentice și deci, redundante, dar, din păcate nu pot pune toate executabilele în același folder (având ca motivație faptul că folosesc în mare parte aceleași fișiere) pentru că ar trebui să adaug în același folder și acea arhivă (vizibilă în print-ul de mai sus) care conține fix callbackurile corespunzătoare unui anumit executabil și nu pot nici să redenumesc acele arhive, că nu le mai găsește aplicația apoi.

Deci, înapoi de unde-am plecat. :(

#5
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,632
  • Înscris: 30.07.2003
py2exe nu rezolva mai bine problema?
Vad si optiunea --compress la cxfreeze.
De ce nu faci o aplicatie Python care sa apeleze celelalte scripturi in functie de ceva si ai in final doar una singura cu runtime-ul aferent?

#6
Vladinskaya

Vladinskaya

    Rustproof Member

  • Grup: Senior Members
  • Posts: 3,225
  • Înscris: 06.03.2011
Cum adică să apeleze celelalte scripturi? Ideea de bază aici este să nu las scripturi libere, să fie toate executabile.

Dacă ar fi să pun tot codul într-un singur script și să-l build-uiesc doar p-ăla, ah, asta e altceva, dar e destul de mult cod suplimentar de scris, nu sunt tocmai 200-300 de linii în fiecare script, trebuie brodate între ele, la unele implementarea nu permite.

O să încerc cu py2exe, nu știam că funcționează și cu 3.6.

Mulțumesc frumos pentru intervenție!

#7
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,632
  • Înscris: 30.07.2003
Toate scripturile tale devin functii, au argumente (daca au) si mai faci unul (de cateva linii) care sa le apeleze in functie de ceva (un meniu, un parametru de la linia de comanda etc.).

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate