开发者社区 > 大数据与机器学习 > 实时计算 Flink > 正文

flink中写python-udf,用requests包,import requests报错为什么?

Flink flink中写python-udf , 需要用requests包,import requests会报错怎么解决?:
File "/usr/local/python3/lib/python3.7/site-packages/requests/init.py", line 43, in
import urllib3
File "/usr/local/python3/lib/python3.7/site-packages/urllib3/init.py", line 42, in
"urllib3 v2.0 only supports OpenSSL 1.1.1+, currently "
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips 26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168

展开
收起
三分钟热度的鱼 2023-11-30 17:25:06 88 0
3 条回答
写回答
取消 提交回答
  • 在 Flink 中使用 Python UDF 时遇到 requests 包的导入问题,提示 OpenSSL 版本不兼容。这是因为你的系统中安装的 OpenSSL 版本与 urllib3 库要求的版本不符。

    要解决这个问题,可以尝试以下方法:

    1. 升级 OpenSSL
      如果你的操作系统支持,你可以尝试升级系统中的 OpenSSL 到一个更高版本(至少 1.1.1+)。请注意这可能需要管理员权限,并且可能会影响到其他依赖于当前版本 OpenSSL 的应用程序。所以,在升级之前,请确保你了解并接受潜在的风险。

    2. 降级 urllib3
      如果你不能或不想升级 OpenSSL,你可以尝试降级 urllib3 到一个与你的 OpenSSL 版本兼容的版本。打开命令行,进入虚拟环境(如果有的话),然后执行以下命令来安装特定版本的 urllib3

      pip install urllib3==<compatible_version>
      

      其中 <compatible_version> 是一个与你的 OpenSSL 版本兼容的 urllib3 版本号。请查阅 urllib3 文档以找到合适的版本。

    3. 更换 HTTP 库
      如果以上方法都无法解决问题,你可以考虑更换一个不同的 HTTP 库来替代 requests。例如,httpxaiohttp 等库都是不错的选择。这些库可能对 OpenSSL 版本的要求不同,或者有更好的兼容性。

    2023-11-30 22:40:19
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    这个错误表明你的Python环境中的OpenSSL版本太旧,不支持urllib3 v2.0。urllib3是一个用于处理HTTP请求的库,requests库依赖于它。

    要解决这个问题,你需要更新你的OpenSSL版本到1.1.1+。以下是可能的步骤:

    1. 升级OpenSSL:首先需要确定你的操作系统。如果你在Linux上运行,可以使用以下命令来更新OpenSSL:

      • 对于Ubuntu/Debian:

        sudo apt-get update
        sudo apt-get install libssl-dev
        
      • 对于CentOS/RHEL:

        sudo yum update openssl-devel
        

      如果你不在Linux上,或者这些命令不起作用,请查阅你的操作系统的文档以了解如何更新OpenSSL。

    2. 重新安装Python:升级完OpenSSL后,你需要重新编译和安装Python以确保它链接到新的OpenSSL库。你可以从源代码安装Python,或者使用像pyenv这样的工具来管理多个Python版本。

    3. 验证版本:安装新版本的Python后,你可以通过以下命令检查OpenSSL版本:

      import ssl
      print(ssl.OPENSSL_VERSION)
      

      如果版本已经更新为1.1.1+,你应该就不会再遇到那个错误了。

    4. 重新安装requests:最后,你可能还需要重新安装requests库以确保它正确地与新版本的OpenSSL一起工作。

      pip uninstall requests
      pip install requests
      
    2023-11-30 21:10:01
    赞同 展开评论 打赏
  • 升级Open SSL版本吧,版本低了。此回答整理自钉群“实时计算Flink产品交流群”

    2023-11-30 18:07:11
    赞同 展开评论 打赏

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

相关产品

  • 实时计算 Flink版
  • 相关电子书

    更多
    From Python Scikit-Learn to Sc 立即下载
    Data Pre-Processing in Python: 立即下载
    双剑合璧-Python和大数据计算平台的结合 立即下载