|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Feb 2013
Messaggi: 2
|
[Python] Conversione di più file in unico eseguibile.
Salute a tutti Voi !
Perdonatemi innanzitutto se il mio problema potrà sembrare banale, ma è la prima volta che mi avvicino a questo linguaggio di programmazione. L'associazione di Volontariato presso la quale presto servizio, mi ha chiesto di creare un solo ed unico file eseguibile essendo in possesso di uno script in Python. (Script è corretto?). Nello specifico si tratta di un questionario le cui domande e risposte si trovano su un altro file .txt Pertanto mi trovo : Questionario.py quesiti.txt Ovviamente prima di scrivere su questo poliedrico e spettacolare Forum ho cercato in rete ed ho trovato il famoso py2exe. Ne ho studiato le caratteristiche e i modi di utilizzo ed infine l'ho provato. Dopo aver creato il file setup.py ho eseguito il comando : python setup.py py2exe e tutto è andato bene a parte il "piccolo dettaglio" che se tento di eseguire il file .exe non visualizzo ne le domande ne le risposte. Sono certo che devo includere nella compilazione il file .txt ma non so come fare. Inoltre se prendo il solo file .exe e tento di eseguirlo in altro PC, noto che si apre la schermata DOS soltanto per pochi istanti per poi richiudersi immediatamente. L'anomalia non si manifesta più se mi porto anche il file compresso "library.zip" creato da py2exe. E' normale che mi serva anche questo file ? Io pensavo che il risultato finale fosse un solo file eseguibile. Questo è il contenuto del file "setup.py" : Codice:
from distutils.core import setup import py2exe setup(console=['questionario.py'] ) Mentre questo è il contenuto del file "questionario.py" : Codice:
#!/usr/bin/python # -*- coding: iso-8859-15 -*- def NumRand(): import random Insieme = range(1,1420,5) rand = random.sample(Insieme, 10) return rand def Quesito(y): from linecache import getline FileRif = "quesiti.txt" domanda = getline(FileRif, y) risp1 = getline(FileRif, y+1) risp2 = getline(FileRif, y+2) risp3 = getline(FileRif, y+3) controllo = getline(FileRif, y+4) return domanda, risp1, risp2, risp3, controllo def Pulisci(): import os, platform if platform.system() == "Linux": os.system("clear") if platform.system() == "Windows": os.system("cls") import time lista = NumRand() x = 0 giusta = 0 sbagliata = 0 while x <= 9: Pulisci() question = lista[x] gruppo = Quesito(question) domanda = gruppo[0] risp1 = gruppo[1] risp2 = gruppo[2] risp3 = gruppo[3] controllo = gruppo[4] print("\n\n\n\n----------------------------------------") print domanda, '\n', risp1, risp2, risp3 ValOk = ["1","2","3"] risposta = raw_input("Digita il numero corrispondente alla risposta che ritieni esatta: ") if risposta in ValOk: if int(risposta) == int(controllo): print("\n\n******************") print("*RISPOSTA ESATTA!*") print("******************") giusta = giusta + 1 time.sleep(2) else: print("\n\nRisposta errata! La risposta giusta era: \n" + gruppo[int(controllo)]) sbagliata = sbagliata + 1 time.sleep(6) else: print("\n\nATTENZIONE!!! Devi digitare un numero valido corrispondente alla risposta! (1,2,3)") x = x - 1 time.sleep(2) x = x+1 Pulisci() print("\n\nHai dato: " + str(giusta) + " risposte corrette e ne hai sbagliate: " + str(sbagliata)) if int(giusta) <= int(sbagliata): print("\n\nDevi ancora studiare un bel po'!") time.sleep(2) else: print("\n\n**************") print("*COMPLIMENTI!*") print("**************") print("\nHai buone possibilitÃ* di superare l'esame!\n\n") Grazie e a presto ! Ultima modifica di Antinor : 23-02-2013 alle 08:08. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Non ho mai provato questi sistemi di impacchettamento delle applicazioni Python, ma eventualmente puoi dare un'occhiata a PyInstaller.
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Nov 2004
Città: Padova
Messaggi: 2342
|
potresti usare i tag [code]?
Il Python senza identazione non è python ![]() Avevo provato per curiosità dei tool per generare exe da python, ma py2exe, oltre a non essere aggiornato da tempo (dal 2008 mi pare), supporta solo la grammatica del 2 e a me serviva la compatibilità con il 3. Un tool che mi è sembrato funzionare è cx_freeze, esiste per diverse piattaforme e per diverse versioni del python.
__________________
CPU Ryzen 2600 @ 3,95Ghz + Bequiet Dark Rock TF / MB Asus X470-F Gaming / RAM 2x8GB DDR4 G.Skill FlareX 3200 CL14 / VGA Sapphire RX 7900 XT Nitro+ @ 3200Mhz / SSD Samsung 970 Pro 512GB + Sandisk 240GB Plus + Sandisk 960GB Ultra II PSU Seasonic Platinum P-660 / Headset Kingston HyperX Flight |
![]() |
![]() |
![]() |
#4 | ||
Junior Member
Iscritto dal: Feb 2013
Messaggi: 2
|
Quote:
Quote:
|
||
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:35.