Python 日期比较在 .exe 应用程序中不起作用

Python date comparison not working in .exe app

我创建了一个 python 脚本,当 运行 在 Spyder 中使用它时它可以正常工作。然后我用 pyinstaller 冻结它。当我 运行 .exe 应用程序时,出现以下错误。

相关代码如下:

import pandas as pd
import os
from datetime import datetime, time
import teradata as td
import numpy as np
import smtplib
import xlrd #needed for .exe

### Import Fleet Plan file ###
path = '\\PHX43XCIFSC0001\Planning'
folder = '\Aircraft Availability'
file = '\NP Fleet Plan.xlsx'
sheet = 'Mainline'
colnames = [0,2]
link = path + folder + file
update = pd.Timestamp.date(pd.Timestamp(datetime.fromtimestamp(
        os.path.getmtime(link)), unit='s'))
mydata = pd.read_excel(link, sheet_name = sheet, header=colnames, index=None)
df = mydata

# Flatten multiindex to single columns
df.columns = (['{}:{}'.format(i[0], i[1]) for i in df])
df = df.reset_index()
df = df.rename(columns={'index':'mDate', df.columns[1]:'DOW'})

# Remove blank columns and Fleet level columns
xcolunassigned = [col for col in df.columns if 'Unnamed'  in col]
df = df.drop(xcolunassigned, axis=1)
xcolfleet = [col for col in df.columns if 'FLEET'  in col]
df = df.drop(xcolfleet, axis=1)

# Transpose data in to vectors
dft = pd.melt(df, id_vars=['mDate', 'DOW'], var_name='Status', value_name='mCount')

# Split Subfleets, join Legacy, remove 0 and NaN
dft[['Status', 'SubFleet']] = dft.Status.str.split(':',expand=True)
sDate = min(dft.mDate)
dft = dft.dropna()
dft = dft.reset_index(drop=True)
dft = dft[dft['mCount'] != 0]
dft = dft.reset_index(drop=True)

# Delete all data prior to today
dft = dft[dft['mDate'] >= datetime.combine(datetime.today(), time.min) ]
dft = dft.reset_index(drop=True)

我想知道是否需要像 xlrd 库那样显式导入依赖项。

感谢您的帮助。

最终出现了一个问题,即 .exe 没有为我需要的库加载一些依赖项。在我的代码中显式调用依赖项后,.exe 应用程序完美运行。