Python del sys.modules вызвал проблемы - PullRequest
1 голос
/ 18 апреля 2019

mod.py

print "this is mod modules ..."
import sys
del sys.modules['mod']
sys.modules['mod'] = "test mod"

main.py

import mod

print mod

, когда я выполняю, выводит исключение:

# python main.py
this is mod modules ...
Traceback (most recent call last):
  File "main.py", line 1, in <module>
    import mod
  File "/root/test1111/mod.py", line 4, in <module>
    sys.modules['mod'] = "test mod"
AttributeError: 'NoneType' object has no attribute 'modules'

Я хочу знать, извините, что вызвало это?

1 Ответ

0 голосов
/ 18 апреля 2019

Не удаляйте вещи в sys.modules.Он внутренне используется интерпретатором, и при его удалении может возникнуть неопределенное поведение, особенно если вы попытаетесь повторно импортировать модуль во второй раз.

Неопределенное поведение означает, что могут возникать странные ошибки, может произойти сбой интерпретатора или вашкот может загореться.

...