我正在重写正在运行的COM对象并将其从boto升级到boto3,因为旧版本无法与较新的区域端点进行正确连接和身份验证。我已经解决了boto3需要知道某些外部文件在哪里,如cacert.pem等问题。
aws_data_files = [('data', ['data/_endpoints.json',
'data/_retry.json',
'data/cacert.pem']),
('data/s3/2006-03-01',
['data/s3/2006-03-01/service-2.json',
'data/s3/2006-03-01/paginators-1.json',
'data/s3/2006-03-01/waiters-2.json'])
]
我会包含位于data和data / s3 / 2006-03-01文件夹中的文件的代码,但此输入表单上的该死的代码函数不起作用!!!
当程序被py2exe冻结时找到,对于正常程序,这个工作正常。当您在Windows COM对象中使用boto3时,我花了大约8个小时试图弄清楚这些文件应该位于何处。目前还不清楚"数据"在COM对象中运行时应放置文件夹。
我不断获得以下追溯:
Python COM server Internal Error: Unexpected Python Error: Traceback
(most recent call last):
File: "win32com\server\policy.pyc", line 277, in Invoke
File: "winrecom\server\policy.pyc", line 282, in invoke
File: "winrecom\server\policy.pyc", line 585, in invokeex
File: "verifyIAMCOM.pyc", line 103, in validate
File: "boto3\session.pyc", line 263 in client
File: "botocore\session.pyc", line 816 in create_client
File: "botocore\session.pyc", line 691, in get_component
File: "botocore\session.pyc", line 885, in get_component
File: "botocore\session.pyc", line 184, in create_default_resolver
File: "botocore\loaders.pyc", line 123, in _wrapper
File: "botocore\loaders.pyc", line 382, in load_data
DataNotFoundError: Unable to load data for: endpoints
我向COM对象添加了一些代码,并确定COM对象以C:\ Windows \ System32作为当前工作目录运行。鉴于这些信息,我认为如果我将\ data文件夹放在C:\ Windows \ System32中它应该可以工作,但它不起作用。
恕我直言,这些文件包含在"冻结"工作计划需要重构。我真的更喜欢能够做一个包含/当我需要这些文件而不是当前使用的动态包含时的EXPLICIT。
非常感谢任何帮助。
拉里贝茨 vitalEsafe,Inc。
答案 0 :(得分:0)
在我的案例中,我花了很多时间试图解决这个问题,并最终在 PyCharm 中创建了一个新项目,将我的源代码移动到这个新项目并清除了这个错误。