0

当我第一次运行脚本时,它会在 python38\Lib\site-packages\pyngrok\bin 文件夹中下载文件 ngrok.exe 并在第二次运行脚本时使用预期的下载的 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)
4

1 回答 1

0

正如您所观察到的,pyngrok应该只下载ngrok一次二进制文件。如果它一遍又一遍地下载它,它可能被下载到一个缓存的位置,因此每次应用程序退出时都会被吹走。

这是如何发生的将很大程度上取决于您的可执行文件的构建方式,因此我们需要更多信息来专门解决该问题。但是,更好的解决方案是简单地修改你的ngrok_path所以二进制文件下载到的位置被明确设置,如此处所述。作为奖励,这也将帮助您进行调试。

from pyngrok.conf import PyngrokConfig
from pyngrok import conf

conf.set_default(PyngrokConfig(region="au", ngrok_path="/usr/local/bin/ngrok"))
于 2020-09-02T21:13:49.357 回答