首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从另外两个包(python3)导入公共包

从另外两个包(python3)导入公共包
EN

Stack Overflow用户
提问于 2017-10-19 06:31:08
回答 1查看 502关注 0票数 4

我是Python包的新手,我很难找到一些有用的东西。我有三个包:engineuidb。我想从另外两个包中使用db。怎样才是正确的方法呢?

我不想安装db软件包,因为我目前正在同时开发这3个软件包。

谢谢!

目前,我正试图通过进口兄弟程序包来实现这一点,但这太糟糕了,我不确定这是否是正确的方法。这个问题与大量的问题如Relative imports in Python 3ValueError: attempted relative import beyond top-level package密切相关,但没有一个问题对我有一个有效的、有效的答案:-(

到目前为止,我的情况如下:

代码语言:javascript
复制
src/
  __init__.py     # empty file (is it useful?)
  db/
    __init__.py   # empty file
    constants.py
  ui/
    __init__.py   # empty file
    index.py
  engine/
    ...some stuff...

以下是index.py:

代码语言:javascript
复制
from .. import db
print(db.constants.stuff)

但是,运行cd ui && python3 index.pypython3 -m index.pySystemError: Parent module '' not loaded, cannot perform relative import失败

当我调整这个项目时,有时还会出现其他错误,如ValueError: Attempted relative import in non-package

据我在https://docs.python.org/3/tutorial/modules.html上看到的,这应该是可行的,不是吗?

我做错了什么?我应该做些什么(做一件简单的事情,比如)从另外两个包中使用一个普通的包?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-19 08:17:58

__init__.py很有用,尽管它是空的。它告诉python文件夹是python包。

我认为你需要的是修改系统路径。例如,假设您想将constants.py导入到index.py中,index.py如下所示:

代码语言:javascript
复制
import sys
sys.path.append("..")
from db import constants
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46823934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档