У меня есть следующий пакет 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
сам?