组织 python 项目以轻松访问所有模块的最佳方式
Best way to organize a python project to easily access all of the modules
我知道很多地方都问过这个问题,但是 none 似乎真的回答了我的问题。
我正在 python 创建一个独立的应用程序,我当前的项目结构是这样的:
Project/
utils/
log.py
api/
get_data_from_api.py
main.py
我想要一个类似于 django 的设置,我可以在其中使用 Project.<package>
语法引用任何文件。
例如,如果我想从我的 get_data_from_api
模块访问我的 log
模块,我可以这样做:
get_data_from_api.py
import Project.utils.log
# Rest of code goes here...
但是,我似乎无法让它工作,即使我在根目录中添加了一个 __init__.py
文件。
我在某处读到我应该修改我的 PYTHONPATH
,但我想尽可能避免这种情况。此外,django 似乎成功了,因为我在那里找不到任何 PYTHONPATH
修改代码。
非常感谢您的帮助!
Post 注意: tests
适合这个文件结构的什么地方?我希望它们是分开的,但也很容易访问整个项目。
您需要将 __init__.py
添加到每个要作为 Python 包处理的目录,而不仅仅是根目录。
Post Note: Where would tests fit in this file structure? I would like
them to be separate, but also have access to the entire project really
easily.
您可以将 tests
放在项目目录本身中,与 api 和实用程序平行。
我最终使用了如下文件结构:
src/
main.py
project/
api/
get_data_from_api.py
util/
log.py
test/
这样,因为我是 运行 main.py
文件,所以我可以从程序的任何地方执行 import project.<package>.<module>
。例如,我可以这样做:
get_data_from_api.py
import project.util.log
# Rest of code goes here...
一切正常!
如果我完全是在黑暗中拍摄,请告诉我,我宁愿现在就错了,也不愿投入数百小时的项目!
如果您查看这三个教程,可能会对您有所帮助。它可能无法完全解决您想象的问题,但它肯定会给您一个想法或背景知识。
- How to structure a Flask-RESTPlus web service for production builds -
GitHub
Code
- Structuring Your Project -
GitHub
Code
- Clean architectures in Python
GitHub
Code
他们已经写了关于 Django
的内容,因此您可以在以下位置查看详细信息:Best practice for Django project working directory structure。
我知道很多地方都问过这个问题,但是 none 似乎真的回答了我的问题。
我正在 python 创建一个独立的应用程序,我当前的项目结构是这样的:
Project/
utils/
log.py
api/
get_data_from_api.py
main.py
我想要一个类似于 django 的设置,我可以在其中使用 Project.<package>
语法引用任何文件。
例如,如果我想从我的 get_data_from_api
模块访问我的 log
模块,我可以这样做:
get_data_from_api.py
import Project.utils.log
# Rest of code goes here...
但是,我似乎无法让它工作,即使我在根目录中添加了一个 __init__.py
文件。
我在某处读到我应该修改我的 PYTHONPATH
,但我想尽可能避免这种情况。此外,django 似乎成功了,因为我在那里找不到任何 PYTHONPATH
修改代码。
非常感谢您的帮助!
Post 注意: tests
适合这个文件结构的什么地方?我希望它们是分开的,但也很容易访问整个项目。
您需要将 __init__.py
添加到每个要作为 Python 包处理的目录,而不仅仅是根目录。
Post Note: Where would tests fit in this file structure? I would like them to be separate, but also have access to the entire project really easily.
您可以将 tests
放在项目目录本身中,与 api 和实用程序平行。
我最终使用了如下文件结构:
src/
main.py
project/
api/
get_data_from_api.py
util/
log.py
test/
这样,因为我是 运行 main.py
文件,所以我可以从程序的任何地方执行 import project.<package>.<module>
。例如,我可以这样做:
get_data_from_api.py
import project.util.log
# Rest of code goes here...
一切正常!
如果我完全是在黑暗中拍摄,请告诉我,我宁愿现在就错了,也不愿投入数百小时的项目!
如果您查看这三个教程,可能会对您有所帮助。它可能无法完全解决您想象的问题,但它肯定会给您一个想法或背景知识。
- How to structure a Flask-RESTPlus web service for production builds -
GitHub
Code - Structuring Your Project -
GitHub
Code - Clean architectures in Python
GitHub
Code
他们已经写了关于 Django
的内容,因此您可以在以下位置查看详细信息:Best practice for Django project working directory structure。