如何设置Python包

用户名

我想要这样的结构:

Zimp / controller / game_play->如何:以最简单的方式导入Zimp / model / game_play模块?Zimp /模型/ game_play

我制作了一个名为controller的文件夹和一个名为model的文件夹。在这些文件夹中,我放入了一个空__init__.py文件(不知道为什么这样做会做任何事情)。我没有制作model.py文件或controller.py文件。没用 我刚创建了一个model.py和controller.py,它们是空的,除了在创建新模块时自动出现的主块。没有不同。

在controller / game_play.py中,我尝试过: from ..model import game_play_model

它显示值错误:尝试在非包中进行相对导入

是不是实际上不将它们放在单独的目录中?规范是什么?

谢谢

马蒂诺

问题是您正在尝试直接执行子程序包模块,请参阅问题的答案,即使使用__init__.py,也尝试在非程序包中进行相对导入

首先,我认为您需要像这样设置目录文件结构:

Zimp/                       top-level package
    __init__.py                 package initalization
    controller/                     subpackage
        __init__.py                     subpackage initalization
        game_play.py                    subpackage module
    model/                          subpackage
        __init__.py                     subpackage initalization
        game_play_model.py              subpackage module

这些__init__.py文件可以全部为空,因为它们仅表示该目录是[sub]程序包。
出于说明目的,我们假设game_play_model.py文件包含:

print 'hello from game_play_model.py'

并且该game_play.py文件包含以下内容以检测何时直接执行该文件,并将其文件夹的父文件名添加Zimp到Python搜索路径中,从而使您可以在以这种方式运行时直接从包中导入其他内容。

if __name__ == '__main__' and __package__ is None:
    import sys, os.path as path
    # append parent of the directory the current file is in
    sys.path.append(path.dirname(path.dirname(__file__)))

import model.game_play_model

print 'hello from game_play.py'

然后,您将直接执行该命令python game_play.py,并输出如下内容:

hello from game_play_model.py
hello from game_play.py

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在python包中设置路径

来自分类Dev

设置包-如何删除

来自分类Dev

如何设置包的编码?

来自分类Dev

如何从AbstractSavedStateViewModelFactory动态设置包

来自分类Dev

python:如何导入包?

来自分类Dev

如何设置路径,使其与本地作为软件包安装的Python代码一起使用

来自分类Dev

如何设置环境以使用两个python插件包

来自分类Dev

如何为python应用程序显式设置rpm包的名称

来自分类Dev

如何设置python包/模块目录和类定义以进行直观命名

来自分类Dev

如何在atom的包中设置断点?

来自分类Dev

如何为快照包设置PYTHONPATH?

来自分类Dev

如何本地化 iOS 设置包?

来自分类Dev

为Python包设置顶级

来自分类Dev

设置单词检查包中的Python

来自分类Dev

如何在Atom软件包设置中搜索设置?

来自分类Dev

如何使用python的站点包?

来自分类Dev

如何卸载 xgboost python 包?

来自分类Dev

如何读取python包的内容?

来自分类Dev

如何确定python包的鸡蛋?

来自分类Dev

如何以编程方式设置WPF工具包DateTimePicker

来自分类常见问题

如何使用Go中的测试包进行测试设置

来自分类Dev

如何设置Arcgis Javascript dojoConfig包的相对路径

来自分类Dev

如何自动设置小写的包标识符

来自分类Dev

如何在Swift中设置对闭包/函数的弱引用?

来自分类Dev

如何将Spring配置文件设置为包?

来自分类Dev

如何设置搜索路径允许lua插件作为包

来自分类Dev

如何为推送通知设置Meteor Raix推送包

来自分类Dev

如何找到已设置“默认启动”的软件包?

来自分类Dev

如何在SSIS程序包中设置变量?