Python应用程序,py2exe,Inno安装程序,os.system()启动功能不起作用

用户名

我已经使用PyQt4做了一些应用程序,其中包含os.system()启动函数作为按钮,基本上可以打开一个csv文件。

import sqlite3
import sys
import os
.......
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName(_fromUtf8("MainWindow"))
        ####
        .............
        ####
        # "CSV" button
        self.pushButton_4 = QtGui.QPushButton(self.centralwidget)
        self.pushButton_4.setObjectName(_fromUtf8("pushButton_4"))
        self.horizontalLayout_2.addWidget(self.pushButton_4)
        self.pushButton_4.clicked.connect(self.csv_button)
        #### 
    def csv_button(self):
        import csv
        conn = sqlite3.connect('FamilyFinance_test.db')
        c=conn.cursor()
        myrow_in = c.execute("select * from Income_test order by date desc")
        with open('Income_test.csv', 'wb') as csvfile_in:
            s_in = csv.writer(csvfile_in, delimiter=' ')
            s_in.writerow(['Date']+['Income'])
            for i in myrow_in:
                s_in.writerow([str(i[0])]+[str(i[1])])
        myrow_out = c.execute("select * from Outcome_test order by date desc")
        with open('Outcome_test.csv', 'wb') as csvfile_out:
            s_out = csv.writer(csvfile_out, delimiter=' ')
            s_out.writerow(['Date']+['ATM']+['Spent']+['Reason']+['Category'])
            for j in myrow_out:
                s_out.writerow([str(j[0])]+[str(j[1])]+[str(j[2])]+[str(j[3])]+[str(j[4])])
        os.system("start "+'Income_test.csv')
        os.system("start "+'Outcome_test.csv')

在python本身中,此功能以及与py2exe创建的.exe一起均可正常运行。但是,在通过InnoSetup成功创建安装程序并安装了应用程序之后,我发现相同的按钮不起作用。

有人可以为解决这个问题提供指导吗?
使用InnoSetup编译器还有其他事情要做吗?

水獭

也许您的InnoSetup将程序安装到C:\ Program Files(x86)中,这需要UAC提升才能写入该文件夹。

因此,可以将您的安装文件夹更改为某些用户文件夹,或者将您的应用程序与py2exe中的UAC选项打包在一起,在此处进行https://stackoverflow.com/a/1445547/566035的说明

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章