首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSLError:不是目录

SSLError:不是目录
EN

Stack Overflow用户
提问于 2016-03-13 17:08:46
回答 1查看 1.3K关注 0票数 0

在Mac上的requests应用程序中,我在Python2.7的嵌入式版本中使用了优秀的C++模块。我的代码在我的Mac上运行良好,但在客户端的机器上却不运行。他使用的是相同版本的Python和C++主机应用程序。他从以下URL中得到的错误是:

代码语言:javascript
运行
复制
http://www.hantmade.com/backstage/thumb/1450544739_Impression%20XL%20300%20RZ.stage.png

Traceback (most recent call last):
  File "'hantmade-storage.pyp'", line 1468, in online_load_thumbnail
  File "c:\maxon\cinema 4d r16 dev\plugins\hantmade_storage\devel\requests/requests\api.py", line 69, in get
  File "c:\maxon\cinema 4d r16 dev\plugins\hantmade_storage\devel\requests/requests\api.py", line 50, in request
  File "c:\maxon\cinema 4d r16 dev\plugins\hantmade_storage\devel\requests/requests\sessions.py", line 468, in request
  File "c:\maxon\cinema 4d r16 dev\plugins\hantmade_storage\devel\requests/requests\sessions.py", line 597, in send
  File "c:\maxon\cinema 4d r16 dev\plugins\hantmade_storage\devel\requests/requests\sessions.py", line 195, in resolve_redirects
  File "c:\maxon\cinema 4d r16 dev\plugins\hantmade_storage\devel\requests/requests\sessions.py", line 576, in send
  File "c:\maxon\cinema 4d r16 dev\plugins\hantmade_storage\devel\requests/requests\adapters.py", line 433, in send
SSLError: [Errno 20] Not a directory

注意:绝对Windows风格的路径似乎源于这样一个事实,即requests模块是从一组.pyc文件加载的,显然原始源文件的路径被编译到它们中。

不幸的是,我又一次不能在我的Mac上复制这个问题。这个错误从何而来?为什么“不是目录”?是否有步骤调试此问题?

如果有必要,我可以通过TeamViewer登录到客户机的机器,并修改源代码来调试问题,只是我还没有感觉到需要它,因为我对这个错误完全感到困惑。

更新2016-03-15

突然间,我也得到了一个SSLError,我客户端的消息也发生了变化。奇怪的是,代码中并没有什么改变。我将继续搜索,这些错误信息似乎是信息丰富的,最终已经有了关于它们的讨论。

我的当事人看到的是:

代码语言:javascript
运行
复制
SSLError: [Errno 185090050] _ssl.c:326: error:0B084002:x509 certificate routines:X509_load_cert_crl_file:system lib

我看到的是:

代码语言:javascript
运行
复制
SSLError: [Errno 1] _ssl.c:480: error:0D0890A1:asn1 encoding routines:ASN1_verify:unknown message digest algorithm
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-18 11:29:28

对于“非目录”错误,我们认为软件的分布式版本没有将请求模块的cacert.pem文件打包到Python中。这是一个问题。

另一个问题似乎是,当使用Python2.6或更高版本时,ssl模块无法与服务器通信。我能够通过在更新版本中手动编译Python SSL模块来解决这个问题。由于该软件运行在Python的嵌入式版本中,所以我不能就这样疯狂地处理依赖关系,并使我的软件尽可能封装。我使用我的_localimport类临时删除原始的ssl模块,导入新编译的ssl模块和requests

代码语言:javascript
运行
复制
with _localimport(lib_path) as importer:
  importer.disable(['ssl', 'requests'])
  import ssl, requests
  assert issubpath(ssl.__file__, lib_path)
  assert issubpath(requests.__file__, lib_path)

Libs文件夹:

代码语言:javascript
运行
复制
libs/
  ssl-1.16-macosx-10.5-x86_64-2.6.egg
  requests-v2.9.1.egg

请注意,SSL的这些问题只发生在Mac上。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35973137

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档