Я создаю пакет, который я хочу установить с помощью pip. Название пакета - «pololu-motors» и теперь находится на PyPi в версии 0.1.2, но, похоже, оно не импортируется правильно.Проблемы с выпуском пакета Python
Update:Проблема была решена, проблема была мне не код, однако я обновил package до версии 0.2.1 и сделал его более трудно затирать пространство имен, так что надеюсь, никто другой будет иметь вопрос, который у меня был.
Если я подключился к своей виртуальной среде на базе модуля motors
и импортировал пакет с помощью ipython, он отлично работает, но если я попытаюсь импортировать пакет из тестового проекта, у меня есть настройка, он говорит об этом не может записывать ни один из классов, находящихся на motors
.
Вот мой motors/__init__.py
from .qik2s9v1 import Qik2s9v1
Только за пределами модуля двигателей в Зону-пакетов:
In [1]: from motors import Qik2s9v1
In [2]:
Там нет ошибок и класс Qik2s9v1 найден правильно, однако, в тесте проект Я получаю это:
In [1]: from motors import Qik2s9v1
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-79017388c348> in <module>()
----> 1 from motors import Qik2s9v1
ImportError: cannot import name Qik2s9v1
Я могу import motors
с нет ошибок, но класс Qik2s9v1
не найден.
In [2]: import motors
In [3]: motors.Qik2s9v1
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-3-fee4c340a836> in <module>()
----> 1 motors.Qik2s9v1
AttributeError: 'module' object has no attribute 'Qik2s9v1'
Любые идеи, что здесь происходит?
Просьба показать все файлы в тестовом проекте: есть ли еще один файл 'motors.py'? Или, возможно, такой файл 'motors.py' находится где-то еще на вашем' PYTHONPATH'? Попробуйте импорт двигателей; распечатать моторы .__ file__' и посмотреть, что это дает. – Evert
Вы были точно верны, у меня есть каталог 'motors' в моем тестовом пакете, который клонировал имя моего пакета. Я должен, вероятно, сделать импортное имя моего пакета чем-то менее двусмысленным, чем «моторы». – cnobile