Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - mastraa

Pagine: [1] 2
1
Base / formattazione output txt
« il: Gennaio 08, 2023, 19:25 »
Buonasera a tutti,

ho la seguente richiesta da fare: devo creare un file di risultati *.txt e vorrei che una certa serie di dati venisse incolonnata in modo ordinato.
Usando il semplice tab (o doppio tab, ma non cambia chiaramente) però non riesco ad aver le colonne bene allineate perchè alcuni dati hanno più caratteri di altri e quindi risulta poco chiaro alla vista perchè alcuni valori sembrano finire sotto una colonna diversa.

C'è modo di usare qualcosa tipo la funzione *.format() che si usa nel print?

Grazie,
Andrea

2
Database / Re:Applicazione con database condiviso
« il: Novembre 05, 2017, 17:55 »
Mah, finché usi per esempio Sqlite, e finché tutti i client che devono usare il programma possono accedere a una share sulla rete, puoi sbattere il db su quella share. E' a questo che serve Sqlite e i db come lui, dopo tutto.
Ovviamente poi tutte le altre considerazioni di performance, sicurezza, etc. non si calcolano, ma talvolta va bene così.
In tutto questo python c'entra pochino, però.

Ti ringrazio!

Quindi, se ho capito bene, quello che chiedevo è possibile: metto il file in una cartella su un hard disk condiviso da tutti e il programma dovrebbe essere in grado di accedervi modificando semplicemente l'url in relazione all'assegnazione che ha l'hard disk sul computer che sto usando. Corretto?

3
Database / Applicazione con database condiviso
« il: Novembre 05, 2017, 15:20 »
Buongiorno a tutti,

ho scritto una piccola applicazione per inserire dei dati in un database, ora dovrei passare alla fase successiva e cioè installare questa applicazione su diversi computer connessi in rete e accedere ad un database comune.

Volevo sapere se è possibile fare in modo che questo database sia il classico file sql messo nell'hard disk di uno di questi computer e in questo caso come accedervi dagli altri?

Dovrò farlo su windows, ma al momento sto usando un mac, io ho un indirizzo smb di un computer in network con questo indirizzo:
smb://iMac di nome._smb._tcp.local/directory

che indirizzo devo inserire qui: conn=sql.connect(indirizzo) per riuscire a connettermi?


oppure devo per forza installare un database nel server e accedere da li?


Grazie a tutti per l'aiuto!

4
Il problema è 'risolto' ora anche con --onefile sono in grado di dirgli dove andare a prendere i pezzi (usando il secondo metodo prima esposto).

Rimane il fatto che quando vado ad aprire l'eseguibile 'ufficiale' (quello con il floppy e il serpentino riquadrato in rosso più su) mi da errore 10810 l'applicazione non si può aprire...

Qualcuno ha idea del perché?

5
Se prova.py è in CWD, allora alla riga 6 il percorso è sbagliato. (primo listato  gui = "gui/MainGui.ui")
Cosa contiene CWD/gui ?

Ti ringrazio per la risposta, in realtà quel MainGui.ui che vedi è li perché me ne sono fatto una seconda copia, ne è presente uno anche in gui/MainGui.ui.

Facendo delle prove ho comunque capito qualcosa, non tutto, il problema è lato Pyinstaller.
In pratica il fatto è che Pyinstaller modifica i percorsi quando crea l'eseguibile e bisogna prevederlo in fase di stesura del codice, in pratica il percorso va segnalato in modo differente rispetto alla 'compilazione' classica se la gui è su file data esterno:

se si usa la dicitura --onedir
[codice]gui = os.path.join(os.path.dirname(sys.executable), filename)[/codice]
e poi basta copiare dentro a dist/prova la gui

se invece si usa la dicitura --onefile ho trovato:
[codice]if '_MEIPASS2' in os.environ:
    gui = os.path.join(os.environ['_MEIPASS2'], filename)
[/codice]
oppure
[codice]
if hasattr(sys, '_MEIPASS'):
    # PyInstaller >= 1.6
    os.chdir(sys._MEIPASS)
    filename = os.path.join(sys._MEIPASS, filename)
elif '_MEIPASS2' in os.environ:
    # PyInstaller < 1.6 (tested on 1.5 only)
    os.chdir(os.environ['_MEIPASS2'])
    filename = os.path.join(os.environ['_MEIPASS2'], filename)
else:
    os.chdir(os.path.dirname(sys.argv[0]))
    filename = os.path.join(os.path.dirname(sys.argv[0]), filename)[/codice]
Il problema è che le possibilità con onefile mi danno degli errori di codice che sto cercando di risolvere, mentre onedir funziona.

In ogni caso su Mac rimane il problema di far partire il programma con l'eseguibile giusto, mentre quello dentro la cartella funziona.

EDIT: gli errori che riscontro sono con MEIPASS2 che dice non essere ne un metodo di sys ne presente come chiave in os.environ...

6
Ho effettuato alcune altre prove e ho scoperto questo:

eseguendo un altro file exec che trovo dentro alla cartella dist/nomeapp riesco a ricavare questo errore:

[codice]
Traceback (most recent call last):
  File "<string>", line 16, in <module>
  File "<string>", line 11, in __init__
  File "site-packages/PyQt4/uic/__init__.py", line 223, in loadUi
  File "site-packages/PyQt4/uic/Loader/loader.py", line 71, in loadUi
  File "site-packages/PyQt4/uic/uiparser.py", line 923, in parse
  File "xml/etree/ElementTree.py", line 1182, in parse
  File "xml/etree/ElementTree.py", line 647, in parse
IOError: [Errno 2] No such file or directory: 'MainGui.ui'
metis returned -1
logout
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Processo completato]

[/codice]

Di fatto significa che non è in grado di trovare la gui, devo dargli qualche indicazione nel file spec o in altro posto?


Visto ciò ho cercato di capire se un file con una gui 'interna' (scritta in codice python) veniva compilato correttamente, diciamo che riesco a far funzionare il programma correttamente, però mi succede questo (si veda l'immagine in basso): aprendo l'app riquadrata in rosso ottengo il solito crash, se invece entro nella cartella omonima e apro l'exec il programma si apre correttamente...


7
Buonasera a tutti, vi scrivo perché ho un problema con un'interfaccia grafica in PyQt4 quando cerco di compilare per ottenere l'eseguibile con Pyinstaller.

Compilando file.py senza interfaccia e facendo una prova con una gui semplicissima in wx quando vado ad eseguire non ho nessun problema, usando invece una gui in PyQt4 (script funzionante aprendolo da riga di comando) l'applicazione si apre per mezzo secondo e poi crasha.

Ho provato sia a compilare l'intero codice che stavo scrivendo, sia (per paura che il codice avesse qualche problema, visto che in fase di compilazione ottenevo dei warning) a compilare solo quanto segue:

[codice]
#!/usr/bin/python

import sys
from PyQt4 import QtGui, QtCore, uic # importiamo i moduli necessari

gui = "gui/MainGui.ui"

class MainWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.ui=uic.loadUi(gui)#load gui
        self.ui.show()

app = QtGui.QApplication(sys.argv)
main = MainWindow()
sys.exit(app.exec_())
[/codice]

da riga di comando uso pyinstaller --windowed nome.py

non mi da nessun errore e nemmeno warning, ma non apre l'app
sapreste come aiutarmi?

Spero di essere stato abbastanza chiaro sul problema, in caso chiedetemi pure ulteriori informazioni

Grazie mille,
Andrea

8
Programmazione in rete - web / Re: Scaricare file da server web
« il: Maggio 01, 2015, 12:43 »
Non inventare la ruota quadrata: riusa quella tonda.

http://www.davical.org/

Non ho nessun motivo di consigliare questo piuttosto che un altro. Ma l'idea e' che se usi un cal server ognuno lo usa come gli pare.

Ti ringrazio, purtroppo non conoscevo questo software e GoogleCalendar non mi forniva tutte le opzioni che mi servivano. Anche se in ritardo ti ringrazio moltissimo.

Ti rinnovo comunque la domanda perché mi è rimasta la curiosità di capire come quello che chiedevo è possibile: come si può fare per accedere ad un database online? Al momento la soluzione che mi viene più semplice è quella di accedere ad un file condiviso con qualche sistema tipo Drive, One, DropBox... e forse semplifichi moltissimo la questione, ma di sicuro ci sono soluzioni molto più precise... Purtroppo ho sempre e solo lavora su app locali o su siti internet che accedevano a db, ma fare una app locale che accede a dati presenti in internet non l'ho mai fatto...

Grazie ancora,
Andrea

9
Programmazione in rete - web / Re: Scaricare file da server web
« il: Aprile 15, 2015, 17:07 »
Buongiorno a tutti,
rispolvero questo vecchio thread perché ho un problema simile a quello descritto dall'utente. Premetto che forse ne so ancora meno di lui, ma credo di dover fare una cosa molto più semplice.

Devo creare una piccola app che mi permetta di condividere una sorta di calendario indicando le presenze, quindi pensavo ad una piccola applicazione che possa scrivere e leggere dei dati da un database che deve inevitabilmente essere in rete. Ora le possibilità sono due credo:

la prima, migliore da un punto di vista logico, è avere un db accessibile e accedervi, è possibile? Come?

la seconda, forse un po' più semplice, ma stupidotta, è quella di caricare e scaricare ogni volta un file db che il programma poi usa in locale. Ovviamente in caso di modifiche contemporanee qui si avrebbe un conflitto, però la probabilità che ciò avvenga è abbastanza limitata.

Qualcuno sa consigliarmi qualche tutorial o qualche strumento con cui si possa fare? Non voglio assolutamente la pappa pronta, ma magari 4-5 parole chiave con cui cercare poi in internet le varie guide che mi servono!

Grazie,
Andrea

10
Vi ringrazio per l'aiuto!

chiaramente non sono ferratissimo in nulla nel senso che ci lavoro nei ritagli di tempo e avendo ora bisogno di farmi un programma più serio volevo mettere in conto tutte le varie possibilità, non avrò bisogno di grandi potenzialità e moli di dati, però credo non abbia senso imparare qualcosa che mi servirebbe oggi e per ripartire domani da zero.
Il fatto che non ho le idee chiare è perché appunto sto ancora ragionando su come impostare il nuovo software di lettura dati (il primo era senza e si limitava solo a leggere un file di testo e graficare i dati). Ora vorrei passare di livello, ma prima voglio ragionare su tutte le possibilità!

Sui db ho una discreta capacità nell'utilizzarli perchè un annetto fa mi sono scritto un piccolo CMS per un sito, niente di particolare, ma mi ha dato la possibilità di imparare le varie funzionalità sebbene magari non abbia ottimizzato il mio codice e le relazioni.

11
Database / Consiglio su quale db e piccolo aiuto con mysqldb
« il: Aprile 08, 2015, 12:04 »
Buongiorno a tutti,
mi avvicino oggi per la prima volta all'interazione python - database, ho già usato abbastanza entrambi, il primo per crearmi una piccola interfaccia di lettura dati e creazione di grafici e il secondo per un semplice sito internet.
Ora avrei bisogno di farli interagire, ma in internet ho trovato tante informazioni e non so bene cosa scegliere.

MySql (è quello che ho già usato) che è probabilmente il più completo e utilizzato, ci si accede per mezzo della libreria Mysqldb (a proposito ce ne sono altre? perché poi verrò a indicarvi un problema che ho con questa). Se non ho capito male posso accedere anche a MySql fornito da XAMPP (così mi basta quello che già ho). Ho capito bene?

SQLite3 è forse la soluzione che meglio combina semplicità e completezza, anche questo molto usato. Se non ho capito male non serve installare nulla a parte la libreria (intendo che non serve avere il relativo di mysql o xampp per intenderci). Ho capito bene oppure ho preso un granchio?

Infine c'è ZODB che a quanto ho letto nasce proprio per python ed è quello che ne rispetta appena gli standard ad oggetti. Inizialmente ero tentato di usare questo, ma non ho idea di quanto sia diffuso e se sia veramente valido.



Vengo ora a chiedervi un piccolo aiuto per mysqldb, non riesco in alcun modo a installarlo. Uso PIP:

[codice]-sudo pip install MySQL-python[/codice]

e mi ritorna il seguente errore:

[codice]Command "python setup.py egg_info" failed with error code 1 in /private/tmp/pip-build-76Ko66/MySQL-python[/codice]

se non erro mi sta dicendo che il setuptools non è aggiornato, ma in realtà l'ho fatto e se ci riprovo mi dice che è già all'ultima versione. Infatti non mi da alcun problema per altre librerie (sqlite3 ad esempio)...


Vi ringrazio per l'aiuto e la pazienza,
Andrea

12
PyQT / Re: istallare PyQt4
« il: Marzo 13, 2015, 23:36 »
Buonasera a tutti, purtroppo anche io ho difficoltà nell'installare PyQt...tanto che dopo ore di problemi, avendo urgenza di fare un paio di cose, ho deviato su wxPython che sono riuscito a installare in breve, e così come wxPython altre decine di librerie, per PyQt non so cosa sbaglio, non riesco.

O meglio, ho provato in diversi modi, seguendo delle guide in internet, una che avete anche linkato, oppure usando programmi come pi (non ricordo se proprio quello o uno analogo). Risultato: o alla fine mi da un qualche errore, oppure quando pare essere andato tutto per il meglio comunque non riesco a importare la libreria e mi dice che non esiste...

Sicuramente sbaglio qualcosa...ma non capisco bene cosa. Riuscite a dirmi innanzitutto cosa devo scaricare? Giusto per cominciare a capire se parto col piede giusto. Diverse guide mi chiedono di installare prima dei file di Qt e poi un file python (suppongo sia una sorta di conversione della libreria che originariamente è in C, ma forse ho capito male).


Io ho un Mac con il sistema operativo ultimo (yosemite), ho installato sia python 2.7 che 3, ma finora ho lavorato solo con il 2.7 e quindi vorrei installare le pyqt per quello...


Spero di riuscire a risolvere senza rompervi troppo...
Grazie in anticipo,
Andrea

13
Altre tematiche / Re: Consiglio formato di salvataggio dati
« il: Ottobre 28, 2014, 22:17 »
Ok grazie mille, domani mi leggo come funziona JSON e lascio perdere pickle e shelve. Per ora io ho 'solo' un dizionario globale da salvare nel file. E tale resterà. Ho 'bisogno' (nel senso che da neofita mi è sembrata la soluzione più immediata) che sia globale perché prende delle informazioni da due diverse classi di wx per cui avrei dovuto correre in giro per il path.

Per la ricerca del file da aprire vorrei che fosse l'utente scegliere (potrebbe averne salvati anche diversi) per cui si, deve sapere dove lo ha messo.

Grazie ancora a tutti! e scusate il tempo che vi ho fatto perdere :)

14
Altre tematiche / Re: Consiglio formato di salvataggio dati
« il: Ottobre 28, 2014, 16:53 »
Se uno mi chiede perché le ruote della macchina non sono perfettamente verticali non gli rispondo 'senti avvita quei quattro bulloni e attacca le gomme che la macchina va avanti lo stesso'...

Se uno chiedesse "perché le ruote della macchina non sono perfettamente verticali" - intanto quel qualcuno avrebbe fatto una domada precisa, a cui volendo si può dare una risposta altrettanto precisa.

Se uno chiede "in che formato salvo i miei dati", non ha chiarito un bel niente. E quindi nessuna risposta precisa possibile, e quindi ipotesi, richieste di chiarimento, e così via. Se poi la cosa si protrae oltre un ragionevole spazio/tempo... plonk e te lo sei meritato.

Se riesci a consumare diverse righe per lamentarti di come sei stato trattato male, forse riuscirai, concentrandoti, a usare anche alcune righe per spiegare quello che stai cercando di fare. CHE COSA STAI CERCANDO DI F-A-R-E?
Che struttura-dati usa internamente il tuo programma per comporre il pdf? Una serie di pezzetti di testo? Anche qualche immagine? Altre indicazioni (margini, font...)? E che cosa l'utente può modificare? Personalizzare? E come lo fa (con quale interfaccia? una gui... o compila dei file di testo separati?...)?

Quando dici
Citazione
(voglio fare) un po' come succede in word, in excel, nei giochi
capisci, vero, dove sta il problema? Il limite della tua comprensione del problema?
Ma certo che word, excel, photoshop e call of duty "salvano" tutti quanti dei dati in un file... Ma si tratta di formati di file totalmente diversi, e il motivo è che i programmi fanno cose totalemente diverse, e le fanno in modi totalmente diversi. Word ha il compito di salvare del testo, più alcune versioni precedenti del testo, più informazioni di formattazione varie, più altre cose ancora - e sceglie di farlo in un formato binario (ma potrebbe farlo anche in altri modi, e in effetti talvolta lo fa in altri modi, per esempio con una collezione di file di testo strutturati secondo le regole di xml). Excel ha il compito di salvare una serie di valori e di relazioni matematiche tra questi valori, più altre informazioni - e sceglie di farlo con un altro formato binario, bla bla bla. Un videogioco ha il compito di salvare una serie di informazioni sul mondo, più una serie di informazioni sullo stato del personaggio, eccetera - e può farlo in vari modi, talvolta basta un semplice file di testo strutturato, talvolta un csv, talvolta un xml... o naturalmente un file binario con una sua struttura interna.

E tu? Che cosa stai cercando di fare? Che cosa, esattamente, hai bisogno di salvare? Ce lo vuoi dire, così di sfuggita tra una lamentela e l'altra? CHE COSA STAI CERCANDO DI FARE?

Per esempio, se il tuo programma genera il pdf a partire da un (poniamo) dizionario di "parti" ({"intestazione": "bla bla bla", "immagine": img32.jpg, "testo": "bla bla bla", "footer": "bla bla bla", "margine_laterale": 10} o qualcosa del genere), e l'utente (attraverso una opportuna interfaccia) non fa altro che riempire/modificare i valori di questo dizionario, allora forse potrebbe convenirti banalmente usare pickle (libreria standard) per serializzare questo dizionario e conservarlo come file.
Ma questa è solo un'ipotesi... un'ipotesi che sono costretto a fare (al vostro servizio, signore!) perché tu preferisci lamentarti di come ti trattiamo male, invece di SPIEGARCI QUELLO CHE STAI CERCANDO DI FARE, una buona volta.

Tutto chiaro? Devo ripetere?


Ok ora mi sono preso la carne che meritavo, ma quando c'è un problema penso che si ragioni e si possa arrivare a conclusioni meglio così che in altro modo. A un messaggio duro, ma di questo tipo, non mi sarei 'ribellato'.

Detto ciò mi scuso per non aver chiarito il mio problema e lo faccio di seguito:

Sto creando un editor pdf per fare in modo che io e dei amici possiamo scrivere dei report tutti formattati in un certo modo e quindi immediatamente comprensibili a chi ne avrà bisogno in futuro. L'editor è molto semplice: ha una prima pagina dove posso inserire, con dei campi di testo e una checkBox, le informazioni generali del file (nome, titolo, autori, tipologia, breve descrizione ed eventualmente un'immagine). Una seconda pagina invece permette di inserire i vari capitoli (titolo, testo, immagini ed elenchi).
Il contenuto della prima pagina finora non è salvato in nessuna variabile e viene letto direttamente dalla funzione 'print PDF' che appunto crea il report.
Il contenuto della seconda pagina invece viene salvato dapprima in un dizionario temporaneo, che viene 'appeso' ad una lista a sua volta all'interno di un dizionario, chiarisco meglio qui sotto

in apertura di file dichiaro
report={}
report['steps']=[]

la funzione che salva i vari capitoli passo passo:
temporary={}
temporary['name']=...
temporary['desc']=...
report['steps'].append(temporary)

al momento report non ha senso che sia un dizionario in effetti, ma il mio intento era di inserire qui i dati della prima pagina e salvare la variabile report che ha tutto il contenuto del file.

PS in mattinata, cercando in rete, ho trovato delle funzioni come shelved e pickle che salvano su file delle variabili, secondo voi possono fare al caso mio?

Grazie per l'aiuto

15
Altre tematiche / Re: Consiglio formato di salvataggio dati
« il: Ottobre 28, 2014, 11:29 »
Pare non sia chiaro che quello *non* e' un backup... ma tant'e'.

Senti, per quello che devi fare, o usi SQLite o usi JSON. In un caso generi "files" (e non e' chiaro un utente come sappia cosa riaprire). Nell'altro ficchi roba nel db... e non e' chiaro con che criterio un utente la recuperi.

Da una parte ti ringrazio per gli aiuti, dall'altra però non capisco perché (e succede spesso con i programmatori esperti/professionisti) dobbiate trattare la gente come pezze da culo ignoranti. Io sono un appassionato, ho iniziato da un mese a sviluppare qualcosa in python, penso sia ovvio che non sia ancora esperto del mestiere...potresti (gli altri mi pare siano stati più normali nelle risposte) spiegare senza sentirti offeso che qualcuno non sappia le cose come le sai tu. Io faccio ingegneria meccanica, se uno viene a chiedermi una cosa che non sa non gli rispondo come se avessi davanti un demente, anzi. Valorizzo la sua ambizione e cerco di spiegargli anche quello che non mi ha chiesto al fine di fargli capire meglio di cosa stiamo parlando.
Se uno mi chiede perché le ruote della macchina non sono perfettamente verticali non gli rispondo 'senti avvita quei quattro bulloni e attacca le gomme che la macchina va avanti lo stesso'...

Quello che devo fare è salvare un file che riporti in qualche modo i dati che un utente ha inserito così, aprendo nuovamente il programma, l'utente può cercare nel computer lo stesso file e recuperare i dati in modo da finire il lavoro in un secondo momento. Un po' come succede in word, in excel, nei giochi e in qualunque applicazione praticamente. Per il come farlo ho chiesto aiuto a voi perché riconosco di ignorare la cosa visto che è la prima volta che l'affronto, adesso vedrò di studiare cosaè JSON, mentre SQLite credo sia la versione Lite di MySQL che si usa anche per i siti internet no?

Pagine: [1] 2