'Logger' adında bir statik varlıkla JCheq sınıfına sahibim.Bu Python içe aktarma dairesel referansı nasıl çözülür
JCheq, printing_systems
modülünü alır, ancak printing_systems
'dan JCheq.logger
kullanmam gerekir. Ben printing_systems.py
yılında import JCheq
koyduktan sonra
Kodum derleme yapmaz.
jcheq.py
from printing_systems import printing_systems
from logger import logger
class JCheq:
logger = logger.Logger('logs/jcheq.log', loglevel=logger.Logger.INFO)
def __init__(self):
pass
...
printing_systems/printing_systems.py
from jcheq import JCheq
class WinLPR:
def __init__(self):
pass
@staticmethod
def send(spool, params):
temp_dir = tempfile.mkdtemp()
try:
JCheq.logger.log('Creando archivo temporal en dir: ' + temp_dir, logger.Logger.TRACE)
hata iz:
Traceback (most recent call last):
File "/home/jsivil/Desktop/Proyectos/UNPAZ/jcheq/jcheq/jcheq.py", line 12, in <module>
from printing_systems import printing_systems
File "/home/jsivil/Desktop/Proyectos/UNPAZ/jcheq/jcheq/printing_systems/printing_systems.py", line 7, in <module>
from jcheq import JCheq
File "/home/jsivil/Desktop/Proyectos/UNPAZ/jcheq/jcheq/jcheq.py", line 12, in <module>
from printing_systems import printing_systems
ImportError: cannot import name 'printing_systems'
Artık referansları döngüsel hale getirme (print_systems, örn., Decompose). Ya da "aldatma" yapabilir ve almayı global kapsamdan dışarıya taşıyabilirsiniz. –
um ... print_systems modülünde 'print_systems' adlı bir değişken var mı? Sadece 'import printing_systems' yerine –
@BrianCain modülünden bir değişken ithal etmeye çalışıyorsunuz. Evet, ithalatı yöntemlere taşıdım ve şimdi çalışıyor, ancak bunun kabul edilebilir olup olmadığını bilmiyorum ... ne demek istiyorsun ayrıştırma ile? – JorgeeFG