ОБНОВЛЕНИЕ: если я изменю имя модуля select
(в котором возникает ошибка импорта) на select1
, проблема исчезнет! Что за?
Прежде всего: все работает нормально, когда я пытаюсь импортировать свой пакет из командной строки или запускаю pytest в каталоге проекта.
Но в PyCharm у меня возникает проблема «попытка относительного импорта за пределы пакета верхнего уровня», когда я пытаюсь запустить свои тесты и ТОЛЬКО в PyCharm. Я не могу понять, почему.
Я даже удалил и повторно клонировал репозиторий, но проблема все еще возникает.
Вот ссылка на проблемную ветку.
А вот тб:
Testing started at 4:02 PM ...
C:\Users\ricky\AppData\Local\Programs\Python\Python37\python.exe "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.2\helpers\pycharm\_jb_pytest_runner.py" --path C:/Users/ricky/PycharmProjects/candejar/tests
Traceback (most recent call last):
File "C:\Program Files\JetBrains\PyCharm Community Edition 2018.1.2\helpers\pycharm\_jb_pytest_runner.py", line 10, in <module>
from pkg_resources import iter_entry_points
File "C:\Users\ricky\AppData\Local\Programs\Python\Python37\lib\site-packages\pkg_resources\__init__.py", line 36, in <module>
import email.parser
File "C:\Users\ricky\AppData\Local\Programs\Python\Python37\lib\email\parser.py", line 12, in <module>
from email.feedparser import FeedParser, BytesFeedParser
File "C:\Users\ricky\AppData\Local\Programs\Python\Python37\lib\email\feedparser.py", line 27, in <module>
from email._policybase import compat32
File "C:\Users\ricky\AppData\Local\Programs\Python\Python37\lib\email\_policybase.py", line 9, in <module>
from email.utils import _has_surrogates
File "C:\Users\ricky\AppData\Local\Programs\Python\Python37\lib\email\utils.py", line 29, in <module>
import socket
File "C:\Users\ricky\AppData\Local\Programs\Python\Python37\lib\socket.py", line 52, in <module>
import os, sys, io, selectors
File "C:\Users\ricky\AppData\Local\Programs\Python\Python37\lib\selectors.py", line 12, in <module>
import select
File "C:\Users\ricky\PycharmProjects\candejar\candejar\select.py", line 24, in <module>
from . import exc
ImportError: attempted relative import with no known parent package
Process finished with exit code 1
Я уверен, что здесь происходит что-то простое, но я просто не могу понять это. ПРИМЕЧАНИЕ. Я использую Python 3.7 RC 1.
sys.path
в pycharm и командной строке оказываются одинаковыми, за исключением того, что pycharm также включает основной каталог пакета проекта pycharm (который по какой-то причине появляется дважды).
sys.path
при запуске из консоли и из PyCharm. - person Norrius   schedule 19.06.2018sys.path
идентичны, за исключением того, что проект pycharm включает основной каталог пакета проекта в конце. пустая строка также отображается в начале версии командной строки. - person Rick supports Monica   schedule 19.06.2018select
— это стандартный модуль в Python, который может повлиять импорт. - person Norrius   schedule 19.06.2018.idea
, и это, похоже, исправило его. - person Rick supports Monica   schedule 19.06.2018