专栏首页machine_learning/usr/bin/python: can't decompress data; zlib not available 的异常处理

/usr/bin/python: can't decompress data; zlib not available 的异常处理

1. 问题背景

使用Pycharm连接远程服务器端pipenv虚拟环境的python解释器,运行python spark脚本时报错如下错误:

2018-09-12 23:56:00 ERROR Executor:91 - Exception in task 0.0 in stage 0.0 (TID 0) org.apache.spark.SparkException: Error from python worker: /usr/bin/python: can't decompress data; zlib not available PYTHONPATH was: /home/kangwang/.local/share/virtualenvs/pyspark-C8JL9jUk/lib/python3.5/site-packages/pyspark/python/lib/pyspark.zip:/home/kangwang/.local/share/virtualenvs/pyspark-C8JL9jUk/lib/python3.5/site-packages/pyspark/python/lib/py4j-0.10.7-src.zip:/home/kangwang/.local/share/virtualenvs/pyspark-C8JL9jUk/lib/python3.5/site-packages/pyspark/jars/spark-core_2.11-2.3.1.jar:/home/kangwang/.pycharm_helpers/pycharm_matplotlib_backend:/home/kangwang/myproject/pyspark java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:392)

百度这个方法 https://blog.csdn.net/iejtyq/article/details/64438398,发现无效,所以需要继续分析。

2. 问题分析

我是用pipenv在个人目录 myproject/pyspark下创建的虚拟环境,用来存放pyspark工程,其中python3.5解释器的安装路径为下面所示:

根据报错信息,可能是缺少相关依赖包,根据这篇博客https://blog.csdn.net/iejtyq/article/details/64438398 的做法,发现问题并没有得到解决,继续观察报错信息,发现其中的python解释器路径与我虚拟环境里的路径不一致,所以会不会是解释器的问题了呢?

在服务器的虚拟环境下按以下方式执行test.py文件,发现并无报错。由此,结合上面报错信息,可知报错原因是Pycharm在Run test.py 时并没有成功使用虚拟环境下的python解释器。

3. 解决办法

把虚拟环境下的python解释器加到pycharm中.py脚本的环境变量中,即 PATH=/home/kangwang/.local/share/virtualenvs/pyspark-C8JL9jUk/bin:$PATH

具体步骤为1~7步:

以上,就是这个脚本的环境变量配置过程。

如果工程下的脚本都在服务器同一个虚拟环境下运行,采用上面那样一个一个脚本配置环境变量的方法会很繁琐,因此,可对整个工程下的环境变量进行设置:

注意:工程下的环境变量的设置后,在该工程下创建新的.py文件时会自动添加已有的环境变量配置。然而,当重启Pycharm并再次进去该工程下创建新的.py文件时,之前设置的工程下的环境变量将失效,即不会保存。所以,在重启pycharm后,还需要再次重复上面8~15步。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 初探知识图谱

    实体:“能够独立存在的,作为一切属性的基础和万物本原的东西”。实体是属性赖以存在的基础,必须是自在的,也就是独立的、不依附于其他东西而存在的。

    Bo_hemian
  • BERT总结:最先进的NLP预训练技术

    BERT(Bidirectional Encoder Representations from Transformers)是谷歌AI研究人员最近发表的一篇论文:...

    Bo_hemian
  • pandas:字段值插入数据表第一行的解决办法

    在对课程表进行数据抽取时,由于课表结构的原因,需要在原始表字段名作为第一行数据,并对原始字段名进行替换。

    Bo_hemian
  • HDU 3783 ZOJ

    ZOJ Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/...

    Angel_Kitty
  • VSCode配合pipenv搞定虚拟环境的实现方法

    VSCode指定Python路径快捷运行py脚本之前写过了,这样配置有一个问题:所有的python脚本都使用的同一个python来执行的.现在是虚拟环境的天下,...

    砸漏
  • 数学--数论--HDU-2698 Maximum Multiple(规律)

    只有因子中有4或者有3才能被拆成 X+Y+Z=N,然后打了表验证。 最后wa了好几次,是因为int和int计算之后还是int就算赋值给long long . ...

    风骨散人Chiam
  • 数学--数论-- HDU6298 Maximum Multiple 打表找规律

    只有因子中有4或者有3才能被拆成 X+Y+Z=N,然后打了表验证。 最后wa了好几次,是因为int和int计算之后还是int就算赋值给long long . ...

    风骨散人Chiam
  • QPython,一个在手机上运行Python的神器

    之前安利过一款手机上运行Python的神器Termux,不过Termux的使用比较重,它实际是一款linux系统模拟器,安装好Termux后还要再安装pytho...

    一墨编程学习
  • 下一波移动互联网浪潮由中国公司主宰!傅盛在东京GMIC的演讲PPT干货收藏

    猎豹移动CEO傅盛在日本东京举办的GMIC大会上做了题为“浪潮下的中国式逆袭”的演讲。傅盛表示,下一波移动互联网浪潮由中国公司主宰,这主要取决于三大核心优势:...

    罗超频道
  • python实现HmacSHA256加密算法

    小小咸鱼YwY

扫码关注云+社区

领取腾讯云代金券