Boto3 会话 "The config profile () could not be found"
Boto3 Session "The config profile () could not be found"
现在,这很奇怪。我在 ~/.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')
出于某种原因,我得到了错误
'The config profile (dev_config) could not be found'
我完全被这个问题难住了,因为我的配置和凭据文件似乎一切都是正确的。所有论坛都建议我的配置或凭据文件设置错误,但我已准备就绪。就像 boto3 出于某种原因无法归档我的文件。我在 centos7 中 运行 通过 pycharm 顺便说一句。如果有人还有什么我应该检查的,请帮忙。
此外,我知道这是一个与其他帖子类似的问题,但其中 none 现在对我有帮助。就像我说的,它们都指向错误的配置。
您能否尝试以下建议并检查您的设置是否有效:
选项一:
编辑~/.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"
- 运行 上述命令并再次粘贴您的访问密钥和密钥。此命令将更新您的凭据配置文件,这是使此设置正常工作的更简单方法
@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
之后我的程序能够找到配置文件。
我遇到了类似的问题,正如其他人所说,Boto3 配置文件的默认位置是 ~/.aws/config
。因为我在 Windows 上使用 Git bash,这条路径对我来说指向 C:\Windows\System32\config\systemprofile\.aws\config
,但它已经有 Boto3 抱怨的 AWS 配置文件。
结果是此路径的 64 位版本 C:\Windows\SysWOW64\config\systemprofile\.aws\config
Boto3 期望配置文件不存在。一旦我将配置和凭据文件复制到此文件夹中,Boto3 就停止了抱怨。
现在,这很奇怪。我在 ~/.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')
出于某种原因,我得到了错误
'The config profile (dev_config) could not be found'
我完全被这个问题难住了,因为我的配置和凭据文件似乎一切都是正确的。所有论坛都建议我的配置或凭据文件设置错误,但我已准备就绪。就像 boto3 出于某种原因无法归档我的文件。我在 centos7 中 运行 通过 pycharm 顺便说一句。如果有人还有什么我应该检查的,请帮忙。
此外,我知道这是一个与其他帖子类似的问题,但其中 none 现在对我有帮助。就像我说的,它们都指向错误的配置。
您能否尝试以下建议并检查您的设置是否有效:
选项一:
编辑~/.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"
- 运行 上述命令并再次粘贴您的访问密钥和密钥。此命令将更新您的凭据配置文件,这是使此设置正常工作的更简单方法
@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
之后我的程序能够找到配置文件。
我遇到了类似的问题,正如其他人所说,Boto3 配置文件的默认位置是 ~/.aws/config
。因为我在 Windows 上使用 Git bash,这条路径对我来说指向 C:\Windows\System32\config\systemprofile\.aws\config
,但它已经有 Boto3 抱怨的 AWS 配置文件。
结果是此路径的 64 位版本 C:\Windows\SysWOW64\config\systemprofile\.aws\config
Boto3 期望配置文件不存在。一旦我将配置和凭据文件复制到此文件夹中,Boto3 就停止了抱怨。