KeyError при запуске python по пути к файлу, без проблем при прямом обращении в каталог - PullRequest
0 голосов
/ 03 апреля 2020

Я использую экземпляр Ubuntu18 EC2 с AWS. Я установил пакет Anaconda.

Когда я нахожусь прямо в соответствующем каталоге и запускаю python code.py, он работает нормально. Однако он не запускается, когда я пытаюсь запустить скрипт с путем к файлу.

Фактический код:

Работает
$ python AverageAmountofSessions.py

Не работает:
$ python mycompany/AverageSessions/AverageAmountofSessions.py

Ошибка:

Traceback (most recent call last):
  File "mycompany/AverageSessions/AverageAmountofSessions.py", line 126, in <module>
    lambda_handler('event','content')
  File "mycompany/AverageSessions/AverageAmountofSessions.py", line 28, in lambda_handler
    db_host = db_config['mysql']['host']
  File "/home/ubuntu/anaconda3/lib/python3.7/configparser.py", line 958, in getitem 
    raise KeyError(key)
KeyError: 'mysql'

Замечания по добавлению:

  • Вызывает два файла .ini для получения учетных данных для входа в gmail и хранилище данных
  • Библиотеки: SQLalchemy, matplotlib, pandas, smtplib, configparser

Ответы [ 2 ]

1 голос
/ 03 апреля 2020

Похоже, он не находит ключ mysql, который должен быть в вашем INI-файле. Может быть, путь к поиску вашего INI-файла в вашем Scipt не является правильным

Я имею в виду, если вы открываете свой INI-файл, как это:

config = configparser.ConfigParser()
config.read('example.ini')

, то example.ini не является относительным Откуда вы python scipr, но из $ PWD, что означает, где вы находитесь в своей оболочке, когда запускаете ее !!

, если вы делаете что-то подобное, и example.ini находится в том же каталоге, что и Ваш INI файл

import os
config = configparser.ConfigParser()
conffile = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'example.ini')
config.read(conffile)
0 голосов
/ 03 апреля 2020

Ваши ini-файлы находятся в той же директории, что и файл python. Похоже, что он не может найти файл. Я бы начал с проверки того, как установлен ваш db_config dict. Если это проблема, то можно обойти это путем установки переменной PYTHONPATH в папку root вашего исходного кода

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