pyinstaller 打包pymatgen.core.structure后exe无法运行且没有报错信息

pyinstaller 打包pymatgen.core.structure后exe无法运行且没有报错信息

利用pyinstaller -D -w打包
一开始报错

img

后来将相关文件放入 dist\批处理cif图片\pymatgen中,结果现在双击exe没有反应,也没有报错信息了。

import os, sys
import xlsxwriter
import openpyxl
import tkinter
import pymatgen
from tkinter.filedialog import (askopenfilename, asksaveasfilename, askdirectory)
from pymatgen.core.structure import Structure
import tkinter
import tkinter.ttk
from tkinter import messagebox
from pandas import Series as sr
import numpy as np
import pandas as pd
os.path.realpath(sys.argv[0])
root=tkinter.Tk()
root.title("cif文件批处理")
root.geometry("500x200")
opening='''
该软件功能目前包括:'''
opening1='''1、将cif文件结构信息批量导入EXCEL表格'''
text0=tkinter.Label(root, text=opening,font=('华文行楷',18))
text1=tkinter.Label(root, text=opening1,font=('宋体',10))
text0.pack()
text1.pack()

def function1():
    '''读取标准EXCEL文件,对照来写入'''
    filename_str=askopenfilename(title='请选择文件(excel)', filetypes=[('EXCEL', '*.xls *.xlsx'),('All Files','*')])
    a=os.path.splitext(filename_str)
    type3=a[1]
    if type3=='.xls':
        data = xlrd.open_workbook(filename_str)
        table = data.sheets()[0]
        namelist=table.col_values(0)
        namelist=np.array(namelist[1:-1])
        lf=len(namelist)

    else:
        data = openpyxl.load_workbook(filename_str)
        table = data.worksheets[0]
        namelist=list(table.columns)[0]#但是​​sheet.rows​​​是生成器类型,不能使用索引。所以我们将其转换为​​list​​​之后再使用索引
        col1=list(table.columns)[1]
        lf=len(namelist)
        namelist=[namelist[i].value for i in range(1,lf)]
    namelist1={}#建立字典,方便之后查找
    for i in range(0,lf-1):
        key=namelist[i]
        namelist1[key]=i

    '''读取文件夹中所有cif文件'''
    folderpath_str=askdirectory(title='请选择CIF文件夹')
    folderpath=os.listdir(folderpath_str)#将其变为文件夹路径值,否则为字符串
    for allDir in folderpath:
        a=os.path.splitext(allDir)
        type1=a[1]
        name=a[0].split('_')
        if type1==".cif":
            if name[0] in namelist1:
                struct = Structure.from_file(folderpath_str+'/'+allDir)
                struct=str(struct)
                dirction=namelist1[name[0]]+2
                table.cell(row=dirction, column=3).value=struct
    data.save(filename_str)
    data.close()


    df = pd.read_excel(filename_str)
    df.head()


    s0 = df["poscar"].values[0]
    from pymatgen.core.structure import Structure as st
    for i in df["poscar"].values:
        try:
            df.loc[:,"structure"] = np.array([st.from_str(i,"poscar").copy()],dtype="object")
            df.head()
        except:
            pass
    savename=asksaveasfilename(title='请输入存储文件名', filetypes=[('默认EXCEL', '.xlsx'),('All Files','*')], defaultextension='.xlsx')
    df.to_excel(savename)
    messagebox.showinfo("成功!","文件已经导出至"+savename)
Button1=tkinter.Button(root,text="功能1(请选择excel文件)",command=function1)
Button1.pack()


 

按错误提示来操作看看C盘下面对应路径文件夹是否存在