When i run the script first time it downloads the file ngrok.exe in the python38\Lib\site-packages\pyngrok\bin folder and running the script second time it uses the downloaded ngrok.exe which is expected.
But when i make an executable file , then it downloads ngrok each time the user runs the executable file.
So how can I tell pyngrok to download the ngrok.exe only the first time when the executable executes and then use the downloaded file instead of downloading it each time?
here is my code snippet:
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)
As you observed,
pyngrok
should only download thengrok
binary one time. If it is downloading it over and over, it's probably being downloaded to a cached location and thus being blown away each time the application exits.How this is happening would be pretty dependent on how your executable is built, so we'd need more information there to troubleshoot that specifically. However, a better solution would be to simply look at modifying your
ngrok_path
so where the binary is downloaded to is set explicitly, as documented here. As a bonus, this would also help you with debugging.