想用distutils安装带有“oneclick”启动程序fi的python应用程序吗

2024-09-30 16:29:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我在想办法让我的程序可以通过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文件。在


Tags: 文件the数据py程序dataismain
1条回答
网友
1楼 · 发布于 2024-09-30 16:29:20

我已经解决了我在这里遇到的主要问题。总的问题是我的数据文件没有被包括在内。在设置.py我需要把下面的调用设置成。。。在

setup(
  packages = ["RTcore"], 
  package_dir = {"RTcore": "src/RTcore"}, 
  package_data = {"RTcore": ["ui/*"]}, 
  data_files = [("Data", ["/full/path/data.sqlite3"])],
 )

使用设置.py用这种方式把所有的东西都安装好了。下一个要克服的障碍是,当任何用户运行程序时,以及从系统上命令行的任何位置调用数据文件。我使用了以下命令。。。在

^{pr2}$

剩下的最后一个问题是确定如何为数据.sqlite3文件。在ubuntu10.10中,distutils将我的数据文件安装到/usr/local/data/。从这个位置我没有写入文件的权限。所以我想这里的解决方案是将数据文件安装到主目录。我仍在寻找解决这个问题的跨平台解决方案。在

相关问题 更多 >