Я упаковываю свой код, используя pyinstaller, используя приведенную ниже инструкцию в powershell, он успешно завершается, но при попытке запустить упакованный исполняемый файл я получаю сообщение об ошибке.
Сообщение об ошибке:
"FileNotFoundError: [Errno 2] Нет такого файла или каталога:
'BaseMap.xlsx' "
Я новичок в Python, и я читал форум за форумом и не могу понять, почему мой xlsx-файл не упакован с помощью pyinstaller, поэтому его можно прочитать с помощью написанного мной кода. Любые рекомендации или предложения будут с благодарностью. Заранее спасибо.
Используемая инструкция pyinstaller:
pyinstaller --onefile --add-data BaseMap.xlsx;BaseMap.xlsx gmplotguiwithQT2Radius.py
Код:
#!/usr/bin/env python3
# import packages
import sys
import pandas as pd
import gmplot as gm
import PyQt5
import GmapGUI
from PyQt5.QtWidgets import QDialog,QApplication
from PyQt5.QtCore import QUrl
from GmapGUI import *
class MyForm(QDialog):
def __init__ (self):
super().__init__()
self.ui = Ui_Dialog()
self.ui.setupUi(self)
self.ui.search.clicked.connect(self.dispmessage)
self.show()
def dispmessage(self):
# call the program from cmd line
print ("enter file:", sys.argv[0])
# reading data from file
data = pd.read_excel("BaseMap.xlsx")
# create 2 lists latitudes and longitudes
lats = data["fldLat"]
long = data["fldLong"]
#bid = data['fldTgbid']
address = data['fldAddress']
city = data['fldCity']
state = data['fldState']
zipcode = data['fldZip']
# initializing the first location coordinates
gmp = gm.GoogleMapPlotter(lats[0], long[0], 10, apikey = 'API KEY')
#Circle
# Radius unit measure is Meters: 1609.34 Meters = 1 Mile | 8046.72 Meter = 5 Miles | 16093.4 Meters = 10 Miles
for lat, lng in zip(lats, long):
gmp.circle(lat, lng, 5632.7, 'cornflowerblue')
#gmp.circle(lats[0], long[0], 8046.72, 'cornflowerblue')+
#Marker
for lati, lngi, addresses, cities, states, zipc in zip(lats, long, address, city, state, zipcode):
gmp.marker(lati, lngi, '#DB7093', c = None, title = addresses + ' ' + cities + ' ' + states + ' ' + str(zipc))
#Draw
# output the locations
gmp.draw("basemap.html")
file = 'C:/Google Map/GoogleMap_env/basemap.html'
self.ui.webEngineView.setUrl(QUrl(file))
if __name__=="__main__":
app = QApplication(sys.argv)
w = MyForm()
w.show()
sys.exit(app.exec_())