【发布时间】:2016-07-31 08:33:56
【问题描述】:
我一直将 Python 用于单文件脚本,现在我正在处理我的第一个“复杂”项目,因此我没有使用 Python (3.x) 中的包的经验。
我知道这是一个经常被问到的问题,但是我错过了在我的项目中成功组织模块导入的一些东西,应该将其用作库。
假设以下项目树:
myProject/
- subpackage1/
- __init__.py
- other1.py
- subpackage2/
- __init__.py
- other2.py
- __init__.py
- foo.py
- bar.py
从彼此导入模块的正确方法是什么?特别是:
- 从
bar导入foo - 从
other1导入foo - 从
other2导入other1 - 在开发过程中从不同的目录导入
foo(这是一个库)(虚拟环境是正确的选择吗?)
谢谢!
编辑:(使问题更具体)我显然在询问之前尝试了不同的方法。我在一些流行的项目中看到的是使用像from myProject.subpackage1.other1 import something 这样的绝对导入。它看起来像一个干净的解决方案(类似于我过去在 Java 中所做的),但是当采用这种方法时,由于导入错误,我不能简单地运行我的代码。 virtualenv 可以作为在尝试导入软件包之前安装软件包的解决方案吗?
【问题讨论】:
标签: python packages python-import