组织python项目以轻松访问所有模块的最佳方法

组织python项目以轻松访问所有模块的最佳方法,python,django,setup-project,project-structure,Python,Django,Setup Project,Project Structure,我知道很多地方都有人问过这个问题,但似乎没有一个能真正回答我的问题 我正在用python创建一个独立的应用程序,我当前的项目结构如下: Project/ utils/ log.py api/ get_data_from_api.py main.py 我希望有一个类似的设置,在其中我可以使用项目引用任何文件。语法 例如,如果我想从get\u data\u from\u api模块访问log模块,我可以这样做: 从api.py获取数据 imp

我知道很多地方都有人问过这个问题,但似乎没有一个能真正回答我的问题

我正在用python创建一个独立的应用程序,我当前的项目结构如下:

Project/
    utils/
        log.py
    api/
        get_data_from_api.py
    main.py
我希望有一个类似的设置,在其中我可以使用
项目引用任何文件。
语法

例如,如果我想从
get\u data\u from\u api
模块访问
log
模块,我可以这样做:

从api.py获取数据

import Project.utils.log

# Rest of code goes here...
import project.util.log

# Rest of code goes here...
但是,即使在根目录中添加了一个
\uuuu init\uuuu.py
文件,我似乎也无法实现这一点

我在某个地方读到,我应该修改我的
PYTHONPATH
,但如果可能的话,我想阻止这样做。此外,django似乎成功了,因为我在那里找不到任何
PYTHONPATH
修改代码

我真的很感谢你的帮助


贴子:在这个文件结构中,
测试在哪里?我希望它们是分开的,但也可以很容易地访问整个项目。

您需要将
\uuu init\uuuuuuuupy.py
添加到每个要作为Python包处理的目录,而不仅仅是根目录

贴子:测试在这个文件结构中适合什么位置?我想要 他们是分开的,但也有权真正进入整个项目 很容易


您可以将您的
测试
放在项目目录中,与api和UTIL并行。

我最终使用了如下文件结构:

src/
    main.py
    project/
        api/
            get_data_from_api.py
        util/
            log.py
    test/
这样,因为我正在运行
main.py
文件,所以我可以从程序中的任何位置执行
import project..
。例如,我可以这样做:

从api.py获取数据

import Project.utils.log

# Rest of code goes here...
import project.util.log

# Rest of code goes here...
一切正常


如果我完全是在黑暗中拍摄的,请让我知道,我宁愿现在就错了,也不愿在项目进行数百小时后错

看看这三个教程可能会有所帮助。它可能不会完全解决你的想象,但它肯定会给你一个如何做的想法或背景

  • -
  • -
他们已经编写了关于
Django
,因此您可以在以下位置查看详细信息:.

Python 3.3+支持,这样就不需要空的
\uuu init\uuuu.py
文件。