1

这是我正在为我的应用程序使用的文件结构。我的问题是我无法让我的 test_ctd.py 文件查看我的 ctd.py 文件。

这是我的目录结构

FileParser
--Parsers
----ctd.py
--tests
----__init__.py
----test_ctd.py
--parse.py

我从未使用过init .py 文件并且正在努力理解它,但这是我尝试将 ctd.py 添加到我的路径。

import sys
import os.path
d = os.path.dirname(os.path.dirname(os.path.abspath('../../')))

from Parsers import ctd

此外,我的 parse.py 文件中没有任何代码,但我将使用它来启动程序。我是否也需要一个 初始化文件,以便我可以从 Parsers 文件夹中导入文件?

任何有关如何从该程序结构中访问我的文件的帮助将不胜感激。最终它将在 Web 服务器上运行,不确定这是否会有所不同......

谢谢!

4

3 回答 3

1

Parsers并且FileParser必须包含__init__.py如果您想从ctd.py. 请参阅在 Python 和 __init__.py 中导入模块

然后,您可以ctd.py通过执行相对导入(例如from ..Parsers import ctd添加FileParsersys.path和使用from Parsers import ctd.

或者,添加包含FileParserto的目录sys.path并使用from FileParser.Parsers import ctd.

希望有帮助。

于 2013-06-01T23:41:00.220 回答
1

__init__.py文件移入Parsers并将目录FileParser作为绝对路径添加到您的 PYTHONPATH。例如与sys.path.append('full/path/to/FileParser').

于 2013-06-01T23:43:41.130 回答
1

你需要确保 Python 确实在正确的地方寻找。你可以通过修改你的PYTHONPATH环境变量来包含 Python 包所在的位置(例如这个目录)来做到这一点。您还需要一个__init__.py文件,将目录标记为 Python 包。

或者,便宜的、hacky 的方法是修改sys.path.

import sys
import os
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(__file__)), 'Parsers'))
import cdt
于 2013-06-01T23:45:59.187 回答