Problema: come cancellare tutti i residui di random.py, random.pyc e random.pyo che non fa 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, che ho creato il file random.py due volte e quindi ho cancellato random.pyc, due volte, che è apparso nel file contenente tutti i miei programmi python, dopo aver eseguito l'importazione casuale nel terminale , due volte.

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

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

Uno di questi mi ha detto di trovare e cancellare la versione temporanea della cache di random.pyc e random.pyo.

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

    
posta Red 29.06.2015 - 16:04
fonte

3 risposte

0

Risposta finale:

Ehi nuovi programmatori su python.

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

  1. Assicurati di non assegnare un nome al programma dopo il modulo.

    a. Se lo fai, devi eliminare il random.pyc appena creato o altro casuale. il nome del file viene duplicato nel file che contiene random.py creato. Questi sono file GUI che possono essere inseriti nel cestino. Questo passo dovrebbe risolvere il 100% dei tuoi problemi con i file duplicati se hai python 2.x

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

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

Use'cd..','ls',and'cd'togettopython2.7andenter'ls'andyouwillseealotoforiginalfileswith.py,.pyo,.pycendings.Thisisthelocationthattheyonlyshouldbeinotherthanasimilarpathbutinadifferentpythonversion.)i.Ifyoustillthinkyouhavenewlycreatedfilesfloatingaboutinthelibraryusecommand;find./python2.7-namerandom.*-lsThiswilllistthedateofallfilesthatstartwith'random.'andifthereanyhavedatesthatdonotmatchwiththeoriginalinstallationdateorupdatedates,thatisthefilethatiscausingtheproblem.ii.Youcanalsotypethiscommandintoterminaltofindfilesbutitdoesn'tlistthetimeofinstallation;mdfindkMDItemFSName==random.pyObviously,sinceyouknowwhattheoriginalfilepathlookslike,you'llbeabletonottargetthewrongfile!
  • Una volta eliminati i nuovi file, rinomina il tuo programma in modo diverso da random.py e possibilmente qualcosa di diverso dalle parole riservate in python. Ho chiamato il mio generator.py

  • Assicurati quando nel terminale sei nella giusta direzione prima di avviare "python", e digita "import generator" (o come viene chiamato il programma).

  • Per ottenere il percorso giusto usa i comandi 'ls', '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 passato almeno 6 ore agonizzando altri file nascosti di nuova creazione .pyc anche quando le ricerche di comando che avevo fatto in precedenza non ne hanno prodotto.

    Ti ritrovi bloccato, fai una pausa e torni indietro. Qualcosa è scattato nella mia testa dopo aver esaminato diversi luoghi online tra cui stackflow, python.org ( link ), e tutto questo parla di percorsi.

    Non sono mai stato sulla strada giusta prima di averlo importato !!

    1. Avvia "python"

    2. Inserisci "generatore di importazione"

    Dovresti ottenere un output di 10 numeri da 0.0 a 1.0

    Ho risposto a come trovare nuove versioni di random.py, random.pyc e random.pyc. Ho parzialmente risposto come cancellare quelli nuovi, specialmente quelli che è possibile scaricare manualmente nel cestino. Ancora non so come trovare la versione cache provvisoria dei file perché apparentemente non era questo il problema! Il problema era che ho chiamato il mio programma un brutto nome e non ero nella giusta direzione prima di avviare python e importare.

        
    risposta data 30.06.2015 - 00:49
    fonte
    0

    usa mdfind per trovare tutti i file con quel nome (potresti aver bisogno di grep -w per la stringa o usare mdfind con una clausola "kMDItemFSName == whatever.py")

    Una volta che sai dove hai spruzzato quei file, puoi modificarlo nella domanda o decidere di eseguire un'installazione pulita / migrare i dati utente o rimuovere tutto il python e quindi applicare le patch insieme da un'installazione pulita su un esterno guidare.

    Doveva sapere quali sono le cose specifiche che hai fatto, ma spero che alcuni strumenti ti possano limitare ad alcune opzioni.

    Se fossi in scadenza e avessi solo bisogno di sapere quale versione di python era in esecuzione - avrei brew install python dopo aver impostato il link

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

        
    risposta data 29.06.2015 - 17:08
    fonte
    0

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

    Per python 3.4 vedi questa sezione sui file python compilati del python docs

    To speed up loading modules, Python caches the compiled version of each module in the __pycache__ directory under the name module.version.pyc, where the version encodes the format of the compiled file; it generally contains the Python version number. For example, in CPython release 3.3 the compiled version of spam.py would be cached as __pycache__/spam.cpython-33.pyc. This naming convention allows compiled modules from different releases and different versions of Python to coexist.

        
    risposta data 30.06.2015 - 01:01
    fonte

    Leggi altre domande sui tag