如何正确导入相邻文件夹中的Python模块?

2 投票
1 回答
1589 浏览
提问于 2025-04-18 00:45

我正在尝试按照《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

撰写回答