如何在通过 pyinstaller 创建 exe 文件时包含 timzonefinder 模块

How to include timzonefinder module while creating an exe file via pyinstaller

我正在尝试创建一个 GUI,它根据用户的选择从 CSV 文件中获取美国各州的纬度和经度,并使用 timezonefinder 和日期时间模块获取该州的当前时间.

我知道很少有州有 2 个时区,但对于这个项目来说,只有 1 个时区就可以了。 虽然我能够正确使用代码并且它作为 python 脚本完美运行,但是当我使用 pyinstaller 将它转换为可执行文件时,我得到 FileNotFound Error.

代码如下:

import pandas
from tkinter import *
from tkinter import messagebox
from datetime import datetime
from timezonefinder import TimezoneFinder
import pytz

def get_time(state_choosen):
    
    tf =   TimezoneFinder()
    states_data = pandas.read_csv('data/us_states.csv')
    data_list = states_data.to_dict('records')
    
    for data in data_list:
        if state_choosen == data['state']:
            longitude = data['longitude']
            latitude = data['latitude']
            t_zone = tf.timezone_at(lng=longitude, lat=latitude)    
    
            tzone = pytz.timezone(t_zone)
            current_time = datetime.now(tz=tzone).strftime("%I:%M:%S %p")
            
            return current_time 

这是我得到的错误:

Traceback (most recent call last):
  File "tkinter\__init__.py", line 1892, in __call__
  File "main.py", line 179, in city_time
    current_time = us_time.get_time(city)
  File "us_time.py", line 10, in get_time
    tf =   TimezoneFinder()
  File "timezonefinder\timezonefinder.py", line 260, in __init__
  File "timezonefinder\timezonefinder.py", line 118, in __init__
FileNotFoundError: [Errno 2] No such file or directory: 'C:\Users\vaibhav\AppData\Local\Temp\_MEI71562\timezonefinder\poly_zone_ids.bin'

请建议我如何修复此错误。 或者如果有一个解决方法,包括 pyinstaller 支持的另一个库,或者可能通过其他东西创建可执行文件,那么 pyinstaller?

我现在只是个新手,所以请建议最好的做法。

当运行 pyinstaller:

时在命令行添加此参数

--collect-data timezonefinder