csv Ошибка импорта в Pycharm после установки Anaconda - PullRequest
0 голосов
/ 01 февраля 2020

Мне нужно установить Anaconda для другого проекта, пока я регулярно использую Pycharm. Однако после того, как я установил Anaconda, если я нажал кнопку запуска на Pycharm для файла python (я использую python 3.7.4), возникает ошибка импорта. До установки Anaconda для того же кода проблем не возникало.

Для иллюстрации: в родительской папке я создал папку с именем «io» (которая совпадает со встроенным модулем) и python файл с именем "testandtest.py". Структура каталогов выглядит следующим образом:

  • test_IO_error /
    • init .py
    • io /
      • init .py
    • testandtest.py

Код "testandtest.py" приведен ниже:

import csv
def foo():
    print ("This is a test!")

После того, как я нажал кнопку «Выполнить» для testandtest.py в Pycharm, появляется сообщение об ошибке:

Fatal Python Ошибка: init_sys_streams: невозможно инициализировать стандарт sys streams AttributeError: модуль 'io' не имеет атрибута 'OpenWrapper' Текущий поток 0x00046 ccc (сначала выполняется последний вызов): процесс завершен с кодом выхода -1073740791 (0xC0000409)

Я предполагаю, что эта проблема потому что при импорте csv некоторые файлы в модуле csv должны импортировать встроенный модуль io, но вместо этого импортировать модуль io в текущую папку, которая, конечно, не имеет атрибута OpenWrapper. Но разве это не тот случай, когда python 3 всегда использует абсолютный импорт?

Нет проблем, если я запускаю функцию foo в консоли Pycharm.

Эта проблема возникала только при запуске кода с помощью кнопки «Выполнить» в программном обеспечении Pycharm.

1 Ответ

0 голосов
/ 01 февраля 2020

После поиска много ответов на линии. Я нахожу исправление.

Это, очевидно, проблема с затенением модуля. Однако я не хочу менять имя папки с io на другое.

исправление: go Запустить -> Редактировать конфигурации, затем снять отметку

  • Добавить корни содержимого в PYTHONPATH
  • Добавить исходные корни в PYTHONPATH

Подобная проблема была исправлена ​​ранее.

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