После использования "del np.dtype", должен ли реимпорт numpy это исправить? - PullRequest
2 голосов
/ 21 апреля 2019

Я пытаюсь понять поведение импорта в python.

Я использовал del numpy.dtype, и при вводе numpy.dtype выдает ошибку.Но когда я пытаюсь вернуть numpy, это не помогает.

Я пытался следовать ответу от Python: «де-импорт», «ре-импорт», «сброс импорта»? , выполнив del sys.modules['numpy'], но я получаю ошибку, когдаЯ пытаюсь снова импортировать numpy.

Странная часть всего этого заключается в том, что я могу по-прежнему использовать numpy без каких-либо проблем, за исключением того, что когда я печатаю numpy.dtype, я получаю ошибку:

AttributeError: 'module' object has no attribute 'dtype'

Может кто-нибудь объяснить, что происходит и как я могу восстановить:

  1. numpy.dtype
  2. возможность импортировать numpy без ошибок


Я использую Python2.7 в интерактивной консоли Spyder IPython.

1 Ответ

2 голосов
/ 21 апреля 2019

Модуль будет импортирован только один раз в Python, поэтому ваш последующий импорт ничего не сделает.Вы можете использовать importlib метод reload, чтобы перезагрузить библиотеку, которая вернет dtype после того, как вы удалили ее.


import importlib
importlib.reload(numpy)

# numpy.dtype accessible again

Вы упомянули, что используете Python 2.7и importlib, включенный в 2.7, в основном для простоты обновления и не содержит метод reload.Вы должны действительно обновить Python 3, так как 2020 год приближается быстро, но вы можете использовать встроенный метод reload, если вы настаиваете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...