【问题标题】:Boto3 Session "The config profile () could not be found"Boto3 会话“找不到配置文件 ()”
【发布时间】:2020-02-28 21:04:45
【问题描述】:

现在,这是一个奇怪的问题。我在 ~/.aws/config

中创建了一个配置
[profile dev_config]
output = json
region = us-east-1

我的 ~/.aws/credentials 文件中也有凭据。仅供参考,信息故意为空白。

[dev_config]
aws_access_key_id = ...
aws_secret_access_key = ...
aws_session_token = ...

当我运行我的 python 脚本时,我会执行

session = boto3.Session(profile_name="dev_config")
s3client = session.client('s3')

由于某种原因,我得到了错误

'找不到配置文件(dev_config)'

我对此感到非常困惑,因为我的配置和凭据文件似乎一切都正确。所有论坛都建议我的配置或凭据文件设置错误,但我已准备就绪。就像 boto3 由于某种原因无法归档我的文件一样。顺便说一句,我正在通过 centos7 中的 pycharm 运行它。如果有人有其他我应该检查的东西,请帮忙。

另外,我知道这是一个与其他帖子类似的问题,但现在这些都对我没有帮助。就像我说的那样,他们都指出了一个糟糕的配置。

【问题讨论】:

  • 您可以尝试执行 AWS CLI 命令吗?它使用相同的凭据文件。 (AWS CLI 实际上只是一个使用相同 SDK 的 Python 程序。)

标签: python-3.x session amazon-s3 boto3 centos7


【解决方案1】:

您能否尝试以下建议并检查您的设置是否有效:

选项一:

编辑~/.aws/config文件如下图:

[profile dev_config]
output = json

编辑 ~/.aws/credentials 文件如下所示:

[dev_config]
aws_access_key_id = ...
aws_secret_access_key = ...
region = us-east-1

如果上面的建议不起作用,请继续下面的建议二。

选项二:

aws configure --profile "dev_config"
  • 运行上述命令并再次粘贴您的访问密钥和密钥。此命令将更新您的凭据配置文件,这是让此设置正常工作的更简单方法

【讨论】:

    【解决方案2】:

    @Syumak,感谢您的回复。在我的情况下,解决方案结果并不明显,但希望这将有助于可能遇到相同问题的其他人。

    问题是boto3的配置文件的默认位置为

    AWS_CONFIG_FILE = ~/.aws/config
    

    在项目的 .env 文件或系统上的全局 env 文件中,您需要将 AWS_CONFIG_FILE 位置设置为实际路径,而不是上述路径。因此,就我而言,我在 .env 文件中执行了以下操作。

    AWS_CONFIG_FILE = /home/<user>/.aws/config
    AWS_SHARED_CREDENTIALS_FILE = /home/<user>/.aws/credentials
    

    之后我的程序能够找到配置文件。

    【讨论】:

      【解决方案3】:

      我遇到了类似的问题,正如其他人所说,Boto3 的配置文件默认位置是~/.aws/config。由于我在 Windows 上使用 Git bash,这条路径对我来说指向 C:\Windows\System32\config\systemprofile\.aws\config,但它已经有 Boto3 抱怨的 AWS 配置文件。

      原来是这条路径C:\Windows\SysWOW64\config\systemprofile\.aws\config 的 64 位版本,Boto3 期待的配置文件不存在。一旦我将配置和凭据文件复制到此文件夹中,Boto3 就停止抱怨了。

      【讨论】:

      • 今天有趣的事实是System32 实际上是 64 位文件夹,SysWOW64 是 32 位文件夹,“WOW64”表示“Windows(32 位)开启Windows(64 位)”。当然,在 32 位系统上,您不会得到 SysWOW64,只有 System32,只是现在它是针对 32 位文件的。真是令人厌恶的命名方案。
      猜你喜欢
      • 1970-01-01
      • 2020-05-11
      • 2021-02-23
      • 2016-03-01
      • 1970-01-01
      • 2013-04-03
      • 2015-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多