我希望我能在这里得到帮助。我正在编写程序,每隔两分钟就会读取并导出到txt'设备实时记录事件'。一切正常,直到我生成exe文件。更有趣的是,程序适用于我的环境(安装了geckodriver和python库),但在没有python环境的计算机上不起作用。即使我使用--onedir生成exe。任何想法或提示?代码的一部分在下面(没有tkinter):
browser = webdriver.Firefox()
def logs():
global writing
global browser
logs_content = browser.find_element_by_css_selector(".content")
if writing:
curent_time = datetime.datetime.now()
threading.Timer(120, logs).start()
save_path = 'C:/Users/' + getpass.getuser() + '/Desktop/Logs ' + curent_time.strftime("%d-%B-%Y") + '.txt'
with open(save_path, "w") as logs_txt:
logs_txt.write(logs_content.text)
def enter_to_IDE():
username = browser.find_element_by_id("username")
username_input = login.get()
username.send_keys(username_input)
browser.find_element_by_id("next-step-btn").click()
time.sleep(5)
password_css = browser.find_element_by_id("password")
password_input = password.get()
password_css.send_keys(password_input)
browser.find_element_by_id("login-user-btn").click()
time.sleep(10)
logs()
def US_shard():
global browser
browser.get('link')
enter_to_IDE()
def EU_shard():
global browser
browser.get('link')
enter_to_IDE()
对于未来的谷歌用户......
如果您在使用qazxsw poi尝试构建qazxsw poi python脚本可执行文件时遇到问题
Selenium
的链接和评论pyinstaller
文件或使用furas将geckodriver添加到构建中.spec
步骤3的问题在于获得一个既可以在本地解释器中工作的“位置”,也可以在您构建的可执行文件中工作。 PC上的硬编码位置在exe文件中不起作用。所以要注意--add-data ="<gecko location>;<build location>"
中的源和目的地,也许使用相对路径。
因为我正在使用具有许多用户的存储库,所以我最终没有使用“all in one”选项。相反,我写了指令来复制here和我的--add-data
文件。
这个2文件解决方案在exe文件中不需要geckodriver。因为Windows在搜索PATH时首先检查您所在的本地文件夹。 geckodriver.exe
希望有足够的面包屑来帮助未来的访客。另请查看此链接以获取sample.exe
中的命令