TL; DR: Ямпи использует относительный импорт ... есть ли какая-то настройка, которую я могу изменить, чтобы она работала как есть (без необходимости рефакторирования каждые import
в проект)?Ошибка импорта Yampy: нет модуля с именем «аутентификатор»
Windows 7, Python 3.4.3, PyCharm 2016.1.4, Yampy 1.0
Должно быть достаточно простой вопрос - надеюсь кто-то сталкивался это раньше. Я следую за quickstart guide. Кто-то спросил the same question год назад с меньшей информацией, но ответа не было.
Я создал виртуальный, активированный и установленный ямпи. Это дало ошибку импорта ниже, так что я удалил и установить снова:
(MyVenv) C:\Users\me>pip install yampy
Collecting yampy
Using cached yampy-1.0.tar.gz
Requirement already satisfied (use --upgrade to upgrade): requests in c:\virtual environments\myvenv\lib\site-packages (from yampy)
Installing collected packages: yampy
Running setup.py install for yampy ... done
Successfully installed yampy-1.0
Это создало следующий каталог:
- C: \ Virtual Environments \ MyVenv \ Lib \ сайта-пакеты \ yampy
- __pycache_ _ (содержит соответствующие .pyc файлы)
- APIs
- __pycache_ _ (содержит соответствующие .pyc файлы)
- __init_ _.py
- messages.py
- users.py
- utils.py
- __init_ _.py
- аутентификатор. ру
- client.py
- constants.py
- ошибки. ру
- models.py
- yammer.py
Содержание __init_ _.py:
"""
The official Python client for Yammer's API
"""
from authenticator import Authenticator
from client import Client
from yammer import Yammer
Вопрос:
Когда я import yampy
от python, я получаю следующую трассировку (это было из оболочки PyCharm , Но тот же вопрос в командной строке оболочки):
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.1\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\Virtual Environments\myvenv\lib\site-packages\yampy\__init__.py", line 22, in <module>
from authenticator import Authenticator
File "C:\Program Files (x86)\JetBrains\PyCharm 2016.1\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
module = self._system_import(name, *args, **kwargs)
Это не имеет никакого смысла для меня, так как все, кажется, есть. Благодаря!
Update:
Если изменить _init _ файл использовать абсолютный импорт (from yampy.authenticator import ..
вместо from authenticator import..
), он решает сразу же проблему, но создает строку ошибок импорта на протяжении всего проекта. Есть ли какая-то настройка, которую я могу изменить, для чего потребуется минимум рефакторинга?
Крик к @ brian-lyttle – Jon