从git导入自己的Python包

时间:2018-05-26 12:09:29

标签: python git package

我有自己创建的以下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__是空的。现在,当我使用此代码时,如在此处创建main.py并导入内容,它可以正常工作。但是当我将它推送到我的git repo时,请安装它:pip install -U git+https://github.com/frynio/calendarlib(它存在于Python安装目录中的site-packages中)并执行以下操作:

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'

代码位于here

我该怎么办?我应该在我的应用程序中以某种方式导入它,或者我应该更改calendarlib本身的导入吗?

1 个答案:

答案 0 :(得分:1)

导入应该与包相关。 from calendarlib.database import db 代替 from database import db

从查看github回购看起来那条线路是正确的...... 也许你应该用pip重新安装?