Импорт собственного пакета Python из git - PullRequest
0 голосов
/ 26 мая 2018

У меня есть следующий пакет python, созданный мной:

C:.
│   .gitignore
│   MANIFEST
│   setup.py
│
├───.vscode
│   │   settings.json
│   │
│   └───.ropeproject
│           config.py
│           objectdb
│
├───calendarlib
│   │   __init__.py
│   │
│   ├───cal
│   │   │   cal.py
│   │   │   event.py
│   │   │   __init__.py
│   │   │
│   │   └───__pycache__
│   │           cal.cpython-36.pyc
│   │           calendar.cpython-36.pyc
│   │           event.cpython-36.pyc
│   │           __init__.cpython-36.pyc
│   │
│   ├───database
│   │   │   db.py
│   │   │   __init__.py
│   │   │
│   │   └───__pycache__
│   │           db.cpython-36.pyc
│   │           __init__.cpython-36.pyc
│   │
│   └───ui
│           window.py
│           __init__.py
│
├───calendarlib.egg-info
│       dependency_links.txt
│       PKG-INFO
│       SOURCES.txt
│       top_level.txt
│
└───dist
        calendarlib-0.1.tar.gz
        calendarlib-0.2.tar.gz

__init__ s пусты.Теперь, когда я использую этот код, как при создании main.py здесь и импорте вещей, это работает.Но когда я отправляю его в мой репозиторий git, установите его с помощью: pip install -U git+https://github.com/frynio/calendarlib (он присутствует в site-packages в директории установки Python) и сделайте что-то вроде этого:

import sys
from calendarlib.ui import window

if __name__ == '__main__':
    app = window.QApplication(sys.argv)
    foo = window.CalendarWindow()
    foo.show()
    sys.exit(app.exec_())

Там написано:

Traceback (most recent call last):
  File "main.py", line 2, in <module>
    from calendarlib.ui import window
  File "C:\Python36\lib\site-packages\calendarlib\ui\window.py", line 4, in <module>
    from database import db
ModuleNotFoundError: No module named 'database'

Код здесь здесь .

Что я могу сделать?Должен ли я импортировать его как-то по-другому в моем приложении или я должен изменить импорт в calendarlib сам?

1 Ответ

0 голосов
/ 26 мая 2018

Импорт должен быть относительно пакета.from calendarlib.database import db вместо from database import db

Глядя на репозиторий github, кажется, что линия там правильная ... Может быть, вам следует переустановить с помощью pip?

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