Python应用程序、py2exe、Inno设置、os.system()启动函数不起作用
我用PyQt4制作了一些应用程序,其中包含os.system()启动函数作为按钮,基本上打开了一个csv文件Python应用程序、py2exe、Inno设置、os.system()启动函数不起作用,python,inno-setup,py2exe,os.system,Python,Inno Setup,Py2exe,Os.system,我用PyQt4制作了一些应用程序,其中包含os.system()启动函数作为按钮,基本上打开了一个csv文件 import sqlite3 import sys import os ....... class Ui_MainWindow(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) #### ........
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选项打包您的应用程序,这将在此处进行解释。请编辑您的Q并为我们发布您的代码。感谢stry查找并发布您得到的错误或回溯。在Pythonshell中运行时以及从使用py2exe创建的exe中运行时没有错误。当我关闭应用程序(使用InnoSetup生成的.exe)时,会弹出以下错误消息:“无法打开日志文件‘path_to_log_file.exe.log’:[Errno 13]权限被拒绝:‘path_to_log_file.exe.log’”