Problema: come cancellare tutti i resti di random.py, random.pyc e random.pyo che non fanno parte della libreria standard di Python?


1

Ho scritto un codice casuale di importazione e, sfortunatamente, l'ho salvato come nome del modulo che stavo cercando di chiamare. per esempio. random.py

Credo, ma non sono sicuro, di aver creato il file random.py due volte e quindi ho eliminato random.pyc, due volte, che è spuntato nel file contenente tutti i miei programmi Python, dopo aver eseguito l'importazione casuale nel terminale due volte.

Se non ho creato random.py due volte, in qualche modo un altro random.pyc (oltre al primo) era nel file contenente i miei programmi e l'ho eliminato.

Tutte le persone che ho chiesto mi hanno detto di eliminare .pyc e qualsiasi file con random, random.pyo come nome. Ho controllato tutti i miei file creati dall'utente e nessuno di questi si adattava alla descrizione.

Uno di loro mi ha detto di trovare e cancellare la versione temporanea memorizzata nella cache di random.pyc e random.pyo.

La mia domanda è dove su questo MAC air Yosemite posso trovare una versione temporanea nella cache e come cancellarla in sicurezza?


La directory in cui vengono creati i file .pyc dipende dalla versione di Python in uso. Quale versione?
Segna il

@Mark python 2.7.6
Red

Risposte:


0

utilizzare mdfindper individuare tutti i file con quel nome (potrebbe essere necessario grep -wper la stringa o utilizzare mdfindcon una clausola "kMDItemFSName == whatever.py")

Una volta che sai dove hai spruzzato quei file, puoi modificarli nella domanda o decidere di eseguire un'installazione pulita / migrare i dati utente o rimuovere tutto il Python e quindi patcharli insieme da un'installazione pulita su un'unità esterna.

Doveva sapere quali cose specifiche hai fatto, ma si spera che alcuni degli strumenti possano restringerti ad alcune opzioni.

Se fossi in scadenza e avessi solo bisogno di sapere quale versione di Python era in esecuzione, brew install pythondopo aver impostato https://brew.sh

Avresti quindi tre installazioni, ma quella che gira dalla shell è controllabile con $ PATH e puoi essere sicuro che sia aggiornato con homebrew.


Sono come pochi giorni nuovo su Python e sulla programmazione in generale. Ho usato i tuoi comandi e quelli di qualcun altro per trovare l'originale .py, .pyo, .pyc e nessun duplicato. Il mio problema è stato risolto semplicemente andando sul percorso che ha portato al file, avviando Python e chiamando il modulo. Eseguirò immediatamente il backup del mio sistema, anche se perché stavo pensando tutto questo tempo ho rovinato Python sul mio Mac. E la prossima volta, renderò il mio post più chiaro. Grazie mille.
Rosso,

@Red Fantastico! Benvenuto e sono felice che tu stia imparando Python e il sito. Vai avanti e rispondi alla tua domanda, quindi accettala dopo che il periodo di attesa è trascorso. Ciò aiuterà gli altri che sono nuovi molto più della risposta di un "esperto" poiché abilità diverse richiedono livelli di dettaglio diversi.
bmike

Fatto. Devo rimuovere quella modifica.
Rosso

0

Per python 2.x tutti i file relativi al file random.py che hai creato saranno nella stessa directory di questo file.

Per python 3.4 consultare questa sezione sui file compilati di Python dei documenti di Python

Per velocizzare il caricamento dei moduli, Python memorizza nella cache la versione compilata di ciascun modulo nella __pycache__directory sotto il nome module.version.pyc, dove la versione codifica il formato del file compilato; generalmente contiene il numero di versione di Python. Ad esempio, nella versione 3.3 di CPython la versione compilata di spam.py verrebbe memorizzata nella cache come __pycache__/spam.cpython-33.pyc. Questa convenzione di denominazione consente la coesistenza di moduli compilati di diverse versioni e versioni diverse di Python.


0

Risposta finale:

Ehi, nuovi programmatori su Python.

Ho avuto un problema con l'importazione del modulo integrato 'random'.

  1. Assicurati di non nominare il programma dopo il modulo.

    un. In tal caso, devi eliminare random.pyc o altri
    casuali appena creati . il nome del file si duplica nel file che contiene random.py che hai creato. Questi sono file GUI che possono essere inseriti nel cestino. Questo passaggio dovrebbe risolvere il 100% dei problemi di duplicazione dei file se si dispone di Python
    2.x.

    Impara a riconoscere i file originali. Da un mio errore ho trovato il percorso del modulo nella libreria standard di Python. Percorso MAC appena prima che il modulo sia chiamato:

    /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7

Percorso MAC al modulo casuale: /System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7

Use 'cd ..', 'ls', and 'cd' to get to python2.7 and enter 'ls' and you 
will see a lot of original files with .py, .pyo, .pyc endings. This is  
the location that they only should be in other than a similar path but 
in a different python version.)

 i. If you still think you have newly created files floating about in 
 the library use command;

      find ./python2.7 -name random.* -ls

 This will list the date of all files that start with 'random.' and   
 if there any have dates that do not match with the original 
 installation date or update dates, that is the file that is 
 causing the problem. 

 ii. You can also type this command into terminal to find   
 files but it doesn't list the time of installation;

  mdfind kMDItemFSName == random.py

 Obviously, since you know what the original file path looks like, 
 you'll be able to not target the wrong file!
  1. Una volta eliminati i nuovi file, rinomina il tuo programma in modo diverso da random.py e possibilmente qualsiasi cosa diversa dalle parole riservate in Python. Ho chiamato il mio generator.py

  2. Assicurati di trovarti sul terminale nel modo giusto prima di avviare 'python' e digita 'import generator' (o come si chiama il programma).

Per arrivare al percorso giusto usa 'ls', i comandi 'cd' per arrivare al percorso che termina con il file che contiene il programma. (Questo è stato l'ultimo blocco per far funzionare l'importazione - ho trascorso almeno 6 ore a farmi agonizzare di avere altri file .pyc nascosti appena creati anche quando le ricerche di comando che avevo fatto sopra non ne davano nulla.

Ti ritrovi bloccato, fai una pausa e ci ritorni. Qualcosa mi è scattato in testa dopo aver visto diversi posti online tra cui stackflow, python.org ( https://docs.python.org/2/tutorial/modules.html ), e tutto questo parlare di percorsi.

Non ero mai sulla strada giusta prima di importare !!

  1. Avvia "Python"

  2. Inserisci "import generator"

Dovresti ottenere un output di 10 numeri da 0,0 a 1,0

Ho risposto come trovare nuove versioni di random.py, random.pyc e random.pyc. Ho parzialmente risposto come cancellare quelli nuovi, in particolare quelli che puoi scaricare manualmente nel cestino. Non so ancora come trovare la versione temporanea dei file memorizzati nella cache perché a quanto pare non era questo il problema! Il problema era che avevo chiamato il mio programma con un nome sbagliato, e non ero sulla strada giusta prima di iniziare Python e l'importazione.


@ Dai un'occhiata alla risposta di Mark su dove questi .pyc si baseranno sulla versione di Python che hai. La mia risposta è per Python 2.x.
Rosso
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.