Мне удалось установить boto == 2.9.0 внутри глобальных пакетов сайтов, но когда я пытаюсь установить то же самое в virtualenv, происходит сбой со следующей ошибкой.

Running setup.py egg_info for package boto
Traceback (most recent call last):
  File "<string>", line 16, in <module>
  File "/home/khanio/.virtualenvs/test-boto/build/boto/setup.py", line 37, in <module>
    from boto import __version__
  File "boto/__init__.py", line 43, in <module>
    config = Config()
  File "boto/pyami/config.py", line 73, in __init__
    self.load_credential_file(full_path)
  File "boto/pyami/config.py", line 84, in load_credential_file
    self.readfp(c_data)
  File "/usr/lib/python2.7/ConfigParser.py", line 324, in readfp
    self._read(fp, filename)
  File "/usr/lib/python2.7/ConfigParser.py", line 546, in _read
    raise e
ConfigParser.ParsingError: File contains parsing errors: <???>
    [line  2]: '-----BEGIN RSA PRIVATE KEY-----\r\n'
    .......

Я пробовал то же самое на Mountain Lion и Ubuntu 12.04, у обоих установлен python 2.7.4, и на обоих он не может быть установлен в virtualenv.

1
Zakiullah Khan 30 Апр 2013 в 09:18
Вы пропустили опцию --system-site-packages при создании виртуального окружения? Также вы используете pip или что?
 – 
Babu
30 Апр 2013 в 09:24
Ну, я пытаюсь установить boto в virtualenv без поддержки пакетов сайтов, и я использую pip. Та же ошибка появляется при попытке с помощью easy_install.
 – 
Zakiullah Khan
30 Апр 2013 в 09:41
Надеюсь, вы не используете sudo.
 – 
Babu
30 Апр 2013 в 09:59
Похоже, возникает исключение при попытке загрузить файл конфигурации AWS. github.com/boto/boto/blob/develop/ boto / pyami / config.py # L73. Покопайтесь в коде, возможно, вам удастся определить основную причину. Для меня это похоже на проблему с разрешением.
 – 
Babu
30 Апр 2013 в 10:06
Pip install boto читает /etc/boto.cfg и ~/.boto, а также переменные среды BOTO_CONFIG и BOTO_PATH. У вас есть эти файлы / переменные, и возможно, их содержимое неверно?
 – 
Thomas Fenzl
30 Апр 2013 в 10:26

1 ответ

Лучший ответ

Я думаю, проблема в том, что у вас установлена ​​переменная среды AWS_CREDENTIAL_FILE, но она, похоже, указывает на файл, содержащий закрытый ключ, а не на значения AWSAccessKeyId и AWSSecretKey.

Попробуйте отключить эту переменную среды и повторите попытку установки.

2
garnaat 30 Апр 2013 в 18:49
У меня была определена переменная env AWS_CREDENTIAL_FILE, как вы сказали, после ее удаления и перезагрузки оболочки bash ошибка все еще появляется.
 – 
Zakiullah Khan
1 Май 2013 в 04:49
Хм. Я думаю, что единственный способ выполнения этой части кода - это наличие этой переменной среды. Я почему-то думаю, что эта переменная среды все еще установлена ​​при запуске установщика.
 – 
garnaat
1 Май 2013 в 07:02
1
При дальнейшей глобальной проверке env я заметил, что один из моих сценариев оболочки, используемых для автоматизации восстановления экземпляра ec2 при отказе, устанавливал переменную AWS_CREDENTIAL_FILE при запуске оболочки. Спасибо за направление.
 – 
Zakiullah Khan
1 Май 2013 в 14:45