【发布时间】:2011-01-08 11:26:05
【问题描述】:
我最近更改了程序的目录布局:以前,我将所有模块都放在“主”文件夹中。现在,我已经将它们移动到以程序命名的目录中,并在其中放置了一个__init__.py 来制作一个包。
现在我的主目录中有一个 .py 文件,用于启动我的程序,它更加整洁。
无论如何,尝试从我的程序的以前版本加载腌制文件失败了。我得到了“ImportError:没有名为工具的模块”——我猜这是因为我的模块以前在主文件夹中,现在它在Whyteboard.tools 中,而不仅仅是简单的工具。但是,在工具模块中导入的代码与其位于同一目录中,所以我怀疑是否需要指定一个包。
所以,我的程序目录看起来像这样:
whyteboard-0.39.4
-->whyteboard.py
-->README.txt
-->CHANGELOG.txt
---->whyteboard/
---->whyteboard/__init__.py
---->whyteboard/gui.py
---->whyteboard/tools.py
whyteboard.py 从whyteboard/gui.py 启动一段代码,启动GUI。在重新组织目录之前,绝对不会发生这种酸洗问题。
【问题讨论】:
-
也许你可以在 pickle 加载之前将你的模块添加到 pythonpath (
sys.path.append(path_to_your_module))?