在使用此处建议的项目结构时遇到问题:What is the best project structure for a Python application?。
想象一下像这样的项目布局:
Project/
|-- bin/
| |-- project.py
|
|-- project/
| |-- __init__.py
| |-- foo.py
在 bin / project.py 中我想从包项目导入。
#project.py
from project import foo
由于运行 bin / project.py 时sys.path [0]始终是 Project / bin ,因此它会尝试导入模块 bin / project。 py (本身)导致属性错误。有没有办法使用这个项目布局而不在模块 bin / project.py 中使用sys.path?我基本上需要一个“importpackage”语句,忽略具有相同名称的模块。
由于建议了项目结构,我想知道为什么没有其他人有这种问题......
答案 0 :(得分:1)
你可以尝试:
import imp
module_name = imp.load_source('project','../project')
module_name将是包。
编辑:
对于python 3.3 +
import importlib.machinery
loader = importlib.machinery.SourceFileLoader("project", "../project")
foo = loader.load_module("project")