Почему pyngrok не обнаруживает мой файл конфигурации? - PullRequest
1 голос
/ 07 августа 2020

Я пытаюсь использовать свой собственный файл конфигурации с pyngrok, но я не понимаю, почему он его не обнаруживает, мой проект необходимо принудительно запустить с sudo, поэтому ngrok не обнаруживает конфигурацию файл в домашнем каталоге root для некоторых пользователей, поэтому я хочу смонтировать свой собственный файл конфигурации в каталог моего проекта, вот мой код:

from pyngrok import ngrok, conf
import os
from pathlib import Path
import re

def ngrok_start ():
        file = Path (".config/ngrok.yml")
        if file.exists():
                os.system("kill -9 $(pgrep ngrok)")
                ngrok.DEFAULT_CONFIG_PATH = ".config/ngrok.yml"
                ngrok.connect(443, "tcp")
                while True:
                        ngrok_tunnels = ngrok.get_tunnels()
                        url = ngrok_tunnels[0].public_url
                        if re.match ("tcp://[0-9]*.tcp.ngrok.io:[0-9]*", url) is not None:
                                print ("Ngrok TCP:" + url)
                                break

С моим кодом я получаю следующее error:

Traceback (most recent call last):
  File "ngrok.py", line 27, in <module>
    ngrok_start ()
  File "ngrok.py", line 20, in ngrok_start
    ngrok.connect (443, "tcp")
  File "/usr/local/lib/python2.7/dist-packages/pyngrok/ngrok.py", line 181, in connect
    timeout = pyngrok_config.request_timeout))
  File "/usr/local/lib/python2.7/dist-packages/pyngrok/ngrok.py", line 321, in api_request
    status_code, e.msg, e.hdrs, response_data)
pyngrok.exception.PyngrokNgrokHTTPError: ngrok client exception, API returned 502: {"error_code": 103, "status_code": 502, "msg": "failed to start tunnel", "details": {"err": "TCP tunnels are only available after you sign up. \ nSign up at: https://ngrok.com/signup\n\nIf you have already signed up, make sure your authtoken is installed. \ nYour authtoken is available on your dashboard: https: //dashboard.ngrok.com/auth/your-authtoken\r\n\r\nERR_NGROK_302\r\n "}}
No handlers could be found for logger "pyngrok.process"

Мой сценарий находится в папке lib, а мой файл конфигурации - в .config/ngrok.yml, в котором у меня есть токен, но я не могу его обнаружить, надеюсь, вы можете поддержать меня, спасибо.

изображение

1 Ответ

1 голос
/ 07 августа 2020

Согласно документам , переменная DEFAULT_CONFIG_PATH находится в модуле conf, а не в модуле ngrok. Поэтому замените ngrok.DEFAULT_CONFIG_PATH = на conf.DEFAULT_PYNGROK_CONFIG.config_path = .

Однако лучший подход - создать PyngrokConfig с вашим пользовательским config_path и вместо него установить pyngrok_config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...