在python中组织源代码

时间:2012-09-18 00:49:53

标签: python package

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

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

我希望能够直接从import game文件中执行import renderpong.py。实现这一目标的最佳方法是什么?最初util.py, render.py, game.py模块位于src文件夹中,但为了组织起见,我决定将它们放入单独的文件夹中。我对包装惯例很新,所以我不知道这是否是推荐的做事方式。

1 个答案:

答案 0 :(得分:7)

这样做的最好方法就是不要这样做。正是出于原因,你首先将它们移动 - 组织起见 - 你会希望它们在一个单独的模块中。如果要在代码中将模块称为game,则可以执行以下操作:

from framework import game

game.foo()

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

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

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

import game