【问题标题】:Python date comparison not working in .exe appPython日期比较在.exe应用程序中不起作用
【发布时间】:2020-01-29 20:56:06
【问题描述】:

我创建了一个 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 库那样显式导入依赖项。

感谢您的帮助。

【问题讨论】:

  • dft[dft['mDate'] >= datetime.today()] ? @迈克尔
  • 尝试了您的建议,但没有任何改变。我相信问题是在运行 .exe 时,mDate 没有作为日期出现。但是,由于运行脚本时是日期,所以我无法将其更改为日期,至少我还没有找到这样做的方法。
  • 更新:问题在代码中更进一步。出于某种原因,当我使用 .exe 运行代码时,我的数据是使用索引列导入的,即使我明确告诉它不要这样做。不知道它为什么这样做,但我现在只是重新调整以删除这个额外的列。

标签: pandas numpy pyinstaller python-3.7


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-18
    • 2018-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多