首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python导入2级包

python导入2级包
EN

Stack Overflow用户
提问于 2017-08-15 20:43:00
回答 1查看 49关注 0票数 0

我已经在我的项目中添加了一个git子模块。现在该子模块中的所有导入都中断了,因为我必须使用导入的完整路径。例如,如果结构如下:

我的项目:

  • submodule_project:

-- package1:

- code1.py

-- package2:

- code2.py

现在,在code1.py中有from package2 import code2。它告诉我package2是未解析的引用。只有当我将其更改为from submodule_project.package2 import code2时,它才会被解析。

我不想这样,因为我不想更改子模块中的任何东西。我添加它只是为了在我的项目中使用它的一些包,并在它的开发人员更新它时定期更新它。

EN

回答 1

Stack Overflow用户

发布于 2017-08-15 23:00:39

如果希望package2成为顶级可导入包,则其父目录(在本例中为submodule_project)必须在sys.path中。有很多方法可以做到这一点:sys.path.append()sys.path.insert()PYTHONPATH环境变量。

或者,您可能根本不想将代码作为一个子模块。如果子模块中的代码使用绝对导入而不是相对导入(from ..package2 import code2),那么使用子模块就没有意义。软件包可能应该安装在site-packages (全局或虚拟环境)中,但不能作为子模块附加到项目中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45693078

复制
相关文章

相似问题

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