python - 在python中组织源代码

标签 python package

我正在编写一个游戏框架。这是我当前的文件结构:

src/
  framework/
    __init__.py
    util.py
    render.py
    game.py
  pong.py

我希望能够直接从 pong.py 文件中简单地执行 import gameimport render。完成此任务的最佳方法是什么?最初,util.py、render.py、game.py 模块位于 src 文件夹中,但为了组织起见,我决定将它们放入单独的文件夹中。我对包装约定很陌生,所以我不知道这是否是推荐的做事方式。

最佳答案

做到这一点的最好方法就是根本不做。正是出于您最初移动它们的原因——为了组织——您希望它们位于一个单独的模块中。如果您想在代码中将模块称为 game,您可以这样做:

from framework import game

game.foo()

通常,当您执行import game 时,您会期望game 是系统库或在运行脚本的文件夹中。如果不是这样,它会把人们赶走。如果你要让你的框架成为一个系统库,你不会把它作为三个独立的库 utilgamerender,不?您将它打包到一个库中 - framework - 并使用子模块分发它。因此,您真的不想这样做。

但是,据我所知,没有答案可能会令人沮丧,如果你真的想继续,你可以将 framework 文件夹添加到 sys.path,python 检查每当你导入一个模块时:

import sys
sys.path.append("framework")

import game

关于python - 在python中组织源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12469002/

相关文章:

python - 在 Twisted *之前* 开始服务时执行异步代码

python - Flask 应用程序带有 "submodules"

java - 包和类范围规则?

python - Pandas DataFrame 的多个列表

haskell - Windows 10 上的 ghci 错误 : user specified . o/.so/.DLL 无法加载(addDLL: pthread

Python Spelling 替换包,如何将单词添加到字典中?

php - API 和包之间有什么区别?

python - numpy,合并两个不同形状的数组

python - Python 中的二维矢量投影

python - 使用 numpy 创建任意形状的单位矩阵