每次我运行pyinstaller可执行文件时,pyngrok都会下载ngrok我如何才能仅下载一次ngrok?

问题描述

当我第一次运行脚本时,它将文件ngrok.exe下载到python38 \ Lib \ site-packages \ pyngrok \ bin文件夹中,而第二次运行脚本时,它将使用预期的下载的ngrok.exe。

但是当我制作一个可执行文件时,每次用户运行该可执行文件时,它都会下载ngrok。

所以我怎样才能告诉pyngrok仅在可执行文件执行时才第一次下载ngrok.exe ,然后使用下载的文件而不是每次都下载它?

这是我的代码段:

pyngrok_config = PyngrokConfig(region="au")
ngrok.set_auth_token(auth_code)   # auth_code is a string
tunnel = ngrok.connect(4444,"tcp",pyngrok_config=pyngrok_config)

解决方法

如您所见,pyngrok仅应下载ngrok二进制文件一次。如果要一遍又一遍地下载它,则很可能是将其下载到缓存的位置,因此每次应用程序退出时都会被吹走。

这是如何发生的,将完全取决于可执行文件的构建方式,因此我们需要在那里提供更多信息来专门解决该问题。但是,更好的解决方案是仅查看修改ngrok_path的内容,以便将二进制文件的下载位置明确设置为here中所述。另外,这还可以帮助您进行调试。

from pyngrok.conf import PyngrokConfig
from pyngrok import conf

conf.set_default(PyngrokConfig(region="au",ngrok_path="/usr/local/bin/ngrok"))