我在想办法让我的程序可以通过distutils安装。我的最终目标是为ubuntu用户制作一个.deb安装程序。主要问题是让一个“一键式”启动程序文件正常工作。在
我的程序使用pygtk和sqlite3作为gui和数据库。我使用glade来帮助构建gui,因此我的程序绑定到几个glade文件中。然后我还将数据存储在一个.sqlite3文件中。这是到目前为止我的包结构。。。在
root/
|_ src/
| |_ RTcore/
| |_ data/
| | |_ data.sqlite3
| |_ ui/
| | |_ main.glade
| | |_ addRecipe.glade
| |_ __init__.py
| |_ main.py #this is where I store the meat of my program
| |_ module.py #recipetrack is supposed to run this module which ties into the main.py
|_ setup.py
|_ manifest.in
|_ README
|_ recipetrack #this is my launcher script
这是我的电流设置.py文件。。。在
^{pr2}$我的“recipetrack”脚本的代码是。。。在
#!/usr/bin/env python #it appears that if I don't add this then following 2 lines won't work.
#the guide I was following did not use that first line which I found odd.
import RTcore.module
RTcore.module.start()
因此recipetrack get安装在根目录之外,并将其权限更改为755,这样系统上的所有用户都可以启动该文件。一旦启动recipetrack应该启动根文件夹中的模块,然后启动主.py从那以后一切都会正常运转。但它没有。“recipetrack”会启动模块,然后导入主.py类,但此时程序试图加载数据文件(即。数据.sqlite3, 主。高兴,或添加配方。很高兴.) 然后就挂着找不到他们。在
如果我在程序的根目录下运行“recipetrack”,程序运行正常。但我希望能够从系统的任何位置运行“recipetrack”。在
我相信问题在于设置.py用package_数据行进行文件。我尝试过使用数据文件,但这不起作用-安装期间挂起无法定位数据文件。在
我希望这已经很清楚了,有人可以帮忙。在
谢谢, 海伯
改变设置.py文件。。。在
setup(
packages = ["RTcore"],
package_dir = {"src": "RTcore"},
package_data = {"RTcore": ["Rui/*"]},
data_files = [("Data", ["data.sqlite3"])],
)
但是现在安装程序没有安装我的数据.sqlite3文件。在
我已经解决了我在这里遇到的主要问题。总的问题是我的数据文件没有被包括在内。在设置.py我需要把下面的调用设置成。。。在
使用设置.py用这种方式把所有的东西都安装好了。下一个要克服的障碍是,当任何用户运行程序时,以及从系统上命令行的任何位置调用数据文件。我使用了以下命令。。。在
^{pr2}$剩下的最后一个问题是确定如何为数据.sqlite3文件。在ubuntu10.10中,distutils将我的数据文件安装到/usr/local/data/。从这个位置我没有写入文件的权限。所以我想这里的解决方案是将数据文件安装到主目录。我仍在寻找解决这个问题的跨平台解决方案。在
相关问题 更多 >
编程相关推荐