Я думаю, что этот вопрос решается здесь: Отладка Python Spyder зависает с циклическим импортом
Но я не совсем нашел решение.
Первый раз с использованием отладчика в Python.Я использую IDLE.В противном случае программа работает нормально, но при запуске через отладчик она зависает, и мне приходится убивать программу.Я понял, что проблема заключается в том, что я импортирую созданные мной скрипты, которые я использую в основном в качестве баз данных.Так что это что-то вроде этого.
from ownScript import array
, где массив - это просто список списков, как файл CSV.Я считаю, что это довольно простой способ использовать данные локально, даже если в будущем я непременно осуществлю какой-то другой способ.
Если я использую «over», он просто зависает, но если я «перешагнул» свой путь к ошибке, я получаю следующее:
Traceback (most recent call last):
File "/Users/Adrian/Documents/testModuleCaller.py", line 5, in <module>
import testModule
File "<frozen importlib._bootstrap>", line 980, in _find_and_load
File "<frozen importlib._bootstrap>", line 148, in __enter__
File "<frozen importlib._bootstrap>", line 174, in _get_module_lock
File "<frozen importlib._bootstrap>", line 59, in __init__
File "<frozen importlib._bootstrap>", line 59, in __init__
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/bdb.py", line 88, in trace_dispatch
return self.dispatch_line(frame)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/bdb.py", line 112, in dispatch_line
self.user_line(frame)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/idlelib/debugger.py", line 24, in user_line
self.gui.interaction(message, frame)
AttributeError: '_ModuleLock' object has no attribute 'name'
Я понимаю, что вызов скрипта и импорт модуляэто разные вещи.Я проверил другие модули, такие как re и sys, и попытался скопировать некоторый код, чтобы избежать ошибки, но безуспешно.Я также проверил importlib / _bootstrap.py, но не понял, что я могу сделать с _ModuleLock.
Насколько я понимаю, я либо модифицирую свой «модуль», чтобы выполнять ту же работу, что и другие модули, либо я нахожудругой способ работы с данными в моих программах, или я использую другой интерпретатор.
РЕДАКТИРОВАТЬ: Итак, я немного протестировал: укоротив базу данных (список, который я импортирую) все работало нормально.Итак, я проверил с оригинальным размером, и он не зависает, но это занимает много времени, так что это становится непрактичным.Например, когда вы пытаетесь напечатать очень длинные списки, а IDLE сильно замедляется.
В итоге:
- отладчик не зависает, но он очень медленный при импорте длинных наборов данных
- ошибка, которую я отправил, я фактически получаю от любого другогомодуль тоже, например "дата-время"
Есть ли решение для увеличения скорости?