我已经在Python中实现了一个应用程序,我现在要打包它。
这是我树的简化版
.
├── ivolution
│ ├── data
│ │ └── ui
│ │ ├── AboutIvolutionDialog.glade
│ │ └── IvolutionWindow.glade
│ ├── Face.py
│ ├── gui
│ │ ├── AboutDialog.py
│ │ ├── IvolutionWindow.py
| |
│ ├── Guy.py
│ ├── training_types.py
|
├── Ivolution.py
├── setup.py
要运行的主要脚本是Ivolution.py
我的gui(在ivolution / gui中)导入glade文件。
在我的GUI代码(IvolutionWindow.py)中,我必须导入我的glade文件,我用
self.builder.add_from_file("ivolution/data/ui/IvolutionWindow.glade")
如果我从包中工作,这非常有效。但如果我用
安装包python setup.py install
当我运行Ivolution.py时,工作目录是脚本运行的时间,而不是IvolutionWindow.py的位置。
所以我最终导致导入错误:
Traceback (most recent call last):
File "/usr/local/bin/Ivolution.py", line 10, in <module>
my_app = IvolutionWindow.IvolutionWindow("Ivolution")
File "/usr/local/lib/python2.7/dist-packages/ivolution/gui/IvolutionWindow.py", line 34, in __init__
self.builder.add_from_file("ivolution/data/ui/IvolutionWindow.glade")
File "/usr/lib/python2.7/dist-packages/gi/types.py", line 43, in function
return info.invoke(*args, **kwargs)
gi._glib.GError: Failed to open file 'ivolution/data/ui/IvolutionWindow.glade': No such file or directory
我的问题是,如何正确处理我的导入?
我需要一个带有我的安装目录和我的本地数据目录(〜/ .Ivolution)的变量,我想,但我找不到如何有效地做到这一点。
感谢您的帮助,我在网上找不到好的资源来解释这一点。 您可以随意提问,您可以详细了解该项目here。
编辑:
哼,似乎this question回答了我的一半问题。 我仍然需要找到如何有效地创建个人文件夹来保存我的日志。