我在工作中将Python与pandas和xlsxwriter一起用于自动化项目,但是我需要将其作为服务运行,为此,我使用pyinstaller来构建可执行文件,并使用nssm.exe来安装服务。 当我使用pyinstaller并在安装服务之前执行.exe文件时,将生成sucessfull的输出文件。但是在安装服务并启动后,将返回以下错误消息。
2019-05-16 10:10:30,268 -- GENERIC EXCEPTION: Traceback (most recent call last):
File "service.py", line 75, in main
File "bot.py", line 87, in inicia_consulta
File "bot.py", line 26, in salva_saida
File "site-packages\pandas\io\excel.py", line 1952, in save
File "site-packages\xlsxwriter\workbook.py", line 304, in close
File "site-packages\xlsxwriter\workbook.py", line 652, in _store_workbook
File "zipfile.py", line 1204, in __init__
FileNotFoundError: [Errno 2] No such file or directory: 'H:/DOC/Afogados/Documentos/BotDetran/16-05-2019_1010_PE.xlsx'
我尝试了各种文件路径功能,但对我来说都是有用的,还请记住该功能在不使用服务模式启动时通常可以正常工作。
这是我的功能,我在下面详细介绍。
def salva_saida(pd, veiculos):
df = pd.DataFrame(veiculos) # generate dataframe
# capture filedir for the config.yml file
# filedir = 'H:/DOC/Afogados/Documentos/BotDetran/'
filedir = cfg['filedir']
# file = '16-05-2019_1010_PE.xlsx'
file = datetime.now().strftime("%d-%m-%Y_%H%M")+'_PE.xlsx'
# the error ir occurring here
writer = pd.ExcelWriter(filedir+file, engine='xlsxwriter')
...
答案 0 :(得分:1)
正如BoarGules所说,我试图为用户分配对H:映射驱动器的访问权限,但对我不起作用。 因此,我通过创建一个链接来直接服务器文件夹地址来解决该问题。谢谢!