Ho quattro diversi file denominati: main, vector, entity e physics. Non posterò tutto il codice, solo le importazioni, perché penso che sia lì dove si trova l'errore. (Se volete, posso pubblicare più)ImportError: impossibile importare il nome X
principale:
import time
from entity import Ent
from vector import Vect
#the rest just creates an entity and prints the result of movement
Entity:
from vector import Vect
from physics import Physics
class Ent:
#holds vector information and id
def tick(self, dt):
#this is where physics changes the velocity and position vectors
vettoriale:
from math import *
class Vect:
#holds i, j, k, and does vector math
Fisica:
from entity import Ent
class Physics:
#physics class gets an entity and does physics calculations on it.
Ho poi eseguito da main.py e ottengo il seguente errore:
Traceback (most recent call last):
File "main.py", line 2, in <module>
from entity import Ent
File ".../entity.py", line 5, in <module>
from physics import Physics
File ".../physics.py", line 2, in <module>
from entity import Ent
ImportError: cannot import name Ent
Sono molto nuovo a Python, ma ho lavorato con C++ per un lungo periodo. Immagino che l'errore sia dovuto all'importazione di entità due volte, una volta in main e più avanti in fisica, ma non conosco una soluzione alternativa. Qualcuno può aiutare?
Qual è la struttura di directory di dove vengono memorizzati e in quale directory? – Ben
dai un'occhiata a questa risposta per l'importazione di loop in python: http://stackoverflow.com/questions/7199466/how-to-break-import-loop-in-python – Gregor
In generale, non è buona pratica di codifica fare 'da importazione ', o 'da importazione *'. Meglio importare sotto lo spazio dei nomi del modulo per evitare la possibilità di sovrascrivere riferimenti con nomi identici. –