@aramtop

Как задать переменную?

Здравствуйте, недавно возник вопрос о том, как задать переменную GOOGLE_APPLICATION_CREDENTIALS в данном коде:

import os
import dialogflow_v2 as dialogflow
import telegram
import logging 
import time

os.environ["GOOGLE_APPLICATION_CREDENTIALS"]

def detect_intent_texts(project_id, session_id, text, language_code):
    session_client = dialogflow.SessionsClient()

    session = session_client.session_path(project_id, session_id)

    text_input = dialogflow.types.TextInput(
                text=text, language_code=language_code)

    query_input = dialogflow.types.QueryInput(text=text_input)
    
    response = session_client.detect_intent(
            session=session, query_input=query_input)
    
    if response.query_result.intent.is_fallback:
        return None
    else:
        return response.query_result.fulfillment_text
        
class MyLogsHandler(logging.Handler):
    def emit(self, record):
        telegram_token_information_message = os.environ['telegram_token_information_message']
        chat_id_information_message = os.environ['chat_id_information_message']
        log_entry = self.format(record)
        bot_error = telegram.Bot(token=telegram_token_information_message)
        bot_error.send_message(chat_id=chat_id_information_message, text=log_entry)


я пробовал добавлять строку в самое начало:

GOOGLE_APPLICATION_CREDENTIALS = test.json

но получил следующую ошибку:

root@vultr:~/bot/conversation-bots-master# python3 bot-vk.py
Traceback (most recent call last):
  File "bot-vk.py", line 9, in <module>
    import handler_tools
  File "/root/bot/conversation-bots-master/handler_tools.py", line 1, in <module>
    GOOGLE_APPLICATION_CREDENTIALS = test.json
NameError: name 'test' is not defined


я немного нуб в этом. Много прочитал о переменных в Python, но так и не понял как это сделать.
Если можно, то можете сразу в код вставить и отправить ? Буду признателен, поможет помочь. Если не сложно, то объясните так же. На борту Python3.
  • Вопрос задан
  • 337 просмотров
Решения вопроса 1
sim3x
@sim3x
Уберите скрипт из директории рута
Научитесь создавать пользователей в линуксе
Научитесь нормально деплоить
Научитесь пользоваться консолью и башем

export GOOGLE_APPLICATION_CREDENTIALS='some secret here' ; python3 bot-vk.py
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Kapustlo
Ну, смотрите, если вы хотите просто создать переменную, то сделайте так:

GOOGLE_APPLICATION_CREDENTIALS = "test.json"

У вас была проблема в том, что вы не ставили кавычки, что означало, что интерпритатор пытался найти объект "test" и взять значение его атрибута "json"

А если вы хотите именно в "os.environ" добавить добавить это значение, то сделайте так:

os.putenv("GOOGLE_APPLICATION_CREDENTIALS", "test.json")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы