Topic: Aprire .pyc su Mac (v.3.4.2)  (Letto 1673 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline collastickp

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Aprire .pyc su Mac (v.3.4.2)
« il: Novembre 06, 2014, 11:09 »
Ciao a tutti.. premetto che questo è il mio primo post su questo forum e spero possiate aiutarmi.

Sono al primo anno di università e stiamo iniziando a programmare qualcosa con Python. Sono passato da poco ad utilizzare un terminale mac con la versione Python 3.4.2 ed ho dei problemi con l'apertura dei file .pyc, che invece vengono tranquillamente eseguiti da terminale windows del laboratorio (stessa versione 3.4.2). L'errore che viene visualizzato è:

The file's encoding is invalid for Python 3.x. IDLE will convert it to UTF-8.
What is the current encoding of the file?

Lo spazio sottostante è già compilato con: us-ascii, ma dando l'OK il file non viene comunque eseguito.
Ho provato ad eseguire lo stesso file anche attraverso l'applicazione "Terminale" ma da una serie di errori.

Il compito di questi file già compilati è di leggere la funzione dell'esercizio scritta dagli studenti e di confrontarla con quella scritta dai professori, effettuando anche una serie di prove.
Ho installato anche la versione 2, ma i file non vengono comunque letti.
Confido in un vostro aiuto! :))

P.s. Spiegazioni semplici e comprensibili  :P

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.851
  • Punti reputazione: 9
    • Mostra profilo
Re: Aprire .pyc su Mac (v.3.4.2)
« Risposta #1 il: Novembre 06, 2014, 11:27 »
Sì beh, anche le domande dovrebbero essere comprensibili, però.

Prima parli di un "terminale" e poi però spunta fuori idle... è così? Parli di "terminale windows" ma non si capisce che cosa vuol dire (cmd.exe? powershell? idle su windows?)...
Che cosa sarebbe "lo spazio sottostante"? Sottostante a che? Che cosa vuol dire "dando l'ok"? L'ok a chi? Che cosa vuol dire "il file non viene eseguito?" Che cosa vuol dire "una serie di errori? E quali?

E poi: ma questi .pyc li avete fatti voi o sono moduli che importate (eseguite?) a scatola chiusa? Se li avete fatti voi, basta rifarli nel modo giusto. Se non avete i sorgenti, siete nella m*, ma questo vale per tutto il codice in ogni situazione (presente il concetto di "open source", no?). Probabilmente, chi li ha fatti non sa programmare, e li ha encodati in qualcosa di diverso da utf-8 (e buona fortuna a indovinare qual è l'encoding giusto... magari il classico "cp-1252" se li ha fatti su una macchina windows...).

In linea di principio: dichiarare un encoding nell'intestazione del modulo (e assicurarsi che il proprio editor con cui si scrive il modulo rispetti davvero l'encoding dichiarato). Questo basta... naturalmente se poi il modulo produce stdout in un encoding non supportato dalla shell in cui lo stai eseguendo, avrai altri problemi... ma questo è un altro discorso.

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Aprire .pyc su Mac (v.3.4.2)
« Risposta #2 il: Novembre 06, 2014, 11:49 »
Io credo che lui parli di pyc... e pyc non e' cross-version.
Per inciso, temo anche che lui stia tentando di "aprire" pyc con un editor, mentre dovrebbe essergli chiaro che non ha il minimo senso.

Offline collastickp

  • python unicellularis
  • *
  • Post: 2
  • Punti reputazione: 0
    • Mostra profilo
Re: Aprire .pyc su Mac (v.3.4.2)
« Risposta #3 il: Novembre 06, 2014, 12:43 »
Innanzitutto grazie a entrambi per le vostre risposte.
Si in effetti l'errore viene fuori aprendo il file .pyc attraverso l'IDLE (mi rendo conto che è una cosa assurda in effetti). Il mio problema è che non so far partire l'esecuzione di questi file, cosa che su windows è immediata. Ho provato ad eseguirli sia con il terminale che con il launcher qui su mac, ma nulla da fare.

In particolare l'errore visualizzato con il launcher è il seguente:
RuntimeError: Bad magic number in .pyc file

P.s. I file ci sono stati forniti dai professori, non non sappiamo nulla su come sono stati fatti.
« Ultima modifica: Novembre 06, 2014, 12:46 da collastickp »

Offline pestatasti

  • python neanderthalensis
  • ****
  • Post: 405
  • Punti reputazione: 0
    • Mostra profilo
Re: Aprire .pyc su Mac (v.3.4.2)
« Risposta #4 il: Novembre 06, 2014, 13:01 »
Per quello che so io si eseguono file.py e non pyc.
Quindi in un terminale scrivi python file.py per eseguire il file (che magari ha anche il file.pyc)

Offline riko

  • python deus
  • *
  • moderatore
  • Post: 7.453
  • Punti reputazione: 12
    • Mostra profilo
    • RiK0 Tech Temple
Re: Aprire .pyc su Mac (v.3.4.2)
« Risposta #5 il: Novembre 06, 2014, 13:13 »
Per quello che so io si eseguono file.py e non pyc.
Quindi in un terminale scrivi python file.py per eseguire il file (che magari ha anche il file.pyc)

Ovviamente puoi anche eseguire/importare un pyc.
Ovviamente mancano informazioni da parte di OP.

Comunque in generale

python foo.pyc

funziona. Ah, il mio pyc era un python 2 e lanciato con python2. Probabilmente se hai installato python 3 potrebbe chiamarsi python3.

Il fatto che non funziona e' relativo al fatto che e' *notoriamente* un problema distribuire pyc (che non sono pensati per essere distribuiti).
E guarda caso, si spacca.

State attenti al vostro docente: di Python sa davvero poco. L'unico motivo per distribuire dei pyc invece che dei py e' che pensa che sia piu' "sicuro" e vi vuole nascondere il sorgente.
Evidentemente non sa che decompilare un pyc e' banale. In pratica vi sta creando fastidio per nessun buon motivo: qualunque ragione abbia per nascondervelo, non lo sta facendo.
Oppure sta pensando che voi siate troppo stupidi per cercare su google come si decompila un pyc, cosa che io troverei offensiva, al vostro posto.

Io al vostro posto mi guarderei come si decompila un pyc su google e poi posterei il decompilato nella mailing list del corso. *Pubblico*. Non segreto. Segreto e' male.
Se davvero pensi di non essere in grado, vai dal ragazzo piu' smart del tuo corso e fatelo insieme. Cosi' intanto impari.

Se lui volesse un sistema "sicuro" perche' pensa che ci sia chissa' quale segreto in quei pyc, avrebbe dovuto mettere su un server cui sottomettete le risposte e *non* dare in giro nulla.

Offline RicPol

  • python sapiens sapiens
  • ******
  • Post: 2.851
  • Punti reputazione: 9
    • Mostra profilo
Re: Aprire .pyc su Mac (v.3.4.2)
« Risposta #6 il: Novembre 06, 2014, 13:19 »
ok, allora: visto che sei al primo anno di università, magari ecco un prontuario per i prossimi anni:

se hai un messaggio di errore, la cosa più ovvia che fanno tutti è googlare per quel messaggio: provaci, vedrai come improvvisamente ti si apre un mondo.

E a quanto pare, sì, riko aveva visto giusto ancora una volta (ma come diavolo hai fatto? visto che nel primo post non si parla di magic number ma solo di encoding??)... i file pyc non sono cross-version, e quindi probabilmente stai cercando di importare/eseguire file pyc prodotti con un python diverso da quello su cui li esegui... naturalmente, la colpa è dei tuoi professori che, primo dovrebbero darti i sorgenti py, e secondo dovrebbero almeno sapere di questo possibile intoppo, e darvi delle indicazioni nel merito... ma qui evidentemente avevo visto giusto io: i tuoi professori non sanno programmare in python.

In ogni caso dovresti sapere per conto tuo (o dovrebbero averti spiegato i tuoi professori... se almeno loro lo sanno) qual è il modello di esecuzione di un modulo python (che cosa succede quando invochi l'interprete per "eseguire" un modulo, etc., come si fa a farlo, che cosa vuol dire "importare" un modulo, etc.).

E comunque... e adesso dove è andato a finire il problema degli encoding da cui eravamo partiti?