Domanda

Sto cercando di utilizzare il modulo pprint per controllare alcuni vars in Python, che posso usare felicemente usando la shell interattiva e il codice qui sotto:

import pprint
pp = pprint.PrettyPrinter()
stuff = ['cakes','bread','mead']
pp.pprint(stuff)
.

Tuttavia, quando ho messo sopra in generazione pprint.py ed eseguilo usando python pprint.py ottengo l'errore:

$ python dev/pars/pprint.py 
Traceback (most recent call last):
  File "dev/pars/pprint.py", line 1, in ?
    import pprint
  File "/home/origina2/dev/pars/pprint.py", line 2, in ?
    pp = pprint.PrettyPrinter()
AttributeError: 'module' object has no attribute 'PrettyPrinter'
.

Ciò che è diverso sul modo in cui i moduli vengono chiamati quando si esegue il codice Python da un file rispetto al guscio interattivo?

È stato utile?

Soluzione

Hai chiamato il tuo programma PPRINT.PY, quindi alla linea import pprint cerca di importare se stesso.Succede, ma il tuo pprint.py non contiene nulla chiamato prettyprinter.

Cambia il nome del tuo codice.[E, per essere chiari, elimina qualsiasi file pprint.pyc o pprint.pyo ..]

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top