如何正确导入相邻文件夹中的Python模块?
我正在尝试按照《Learn Python the Hard Way》这本书自学Python。我想使用书中第46章描述的目录结构,为了方便,我把它简化成这样:
bin/
app.py
data/
__init__.py
foobar.py
在第50章中,他提到要从项目的顶层目录启动程序,像这样:
$ python bin/app.py
他之后还说,从顶层目录启动是为了让脚本可以访问项目中的其他资源。
但是我似乎无法从app.py中导入data文件夹里的模块。我是不是对目录结构的设置有误解?
编辑:这是我为了弄清楚这个问题而设置的基本结构
在app.py中,我有:
import data.foobar
在data目录下有一个__init__.py文件,foobar.py里只包含一些无意义的内容,比如:
class Test:
x = 0
这个目录结构与上面的一致。
1 个回答
6
我不太确定这个练习要做什么,但你的顶层目录需要在PYTHONPATH里面。你可以试试:
$ export PYTHONPATH=$PYTHONPATH:$PWD
$ python bin/app.py