我有自己创建的以下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
本身的导入吗?
答案 0 :(得分:1)
导入应该与包相关。
from calendarlib.database import db
代替
from database import db
从查看github回购看起来那条线路是正确的...... 也许你应该用pip重新安装?