Python REPL无法启动

学习如何修复多克容器内防止REPL启动的 Python虚拟env错误

写由arjun.kaimaparambilrajan

2022年5月19日

问题

使用嵌入预建 Python库的docker容器时, Python命令失效,虚拟环境不创建下错误消息可见于驱动日志

20/02/29 16:38:35 WARN PythonDriverWrapper: Failed to start repl ReplId-5b591-0ce42-78ef3-7  java.io.IOException: Cannot run program "/local_disk0/pythonVirtualEnvDirs/virtualEnv-56a5be60-3e71-486f-ac04-08e8f2491032/bin/python" (in directory "."): error=2, No such file or directory          at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)          at org.apache.spark.util.Utils$.executeCommand(Utils.scala:1367)          at org.apache.spark.util.Utils$.executeAndGetOutput(Utils.scala:1393)          at org.apache.spark.util.Utils$.executePythonAndGetOutput(Utils.scala:  …          at java.lang.Thread.run(Thread.java:748)  Caused by: java.io.IOException: error=2, No such file or directory          at java.lang.UNIXProcess.forkAndExec(Native Method)          at java.lang.UNIXProcess.
          
           Java.Lang.ProcessImpl.java:13417多
          

通过笔记本运行下命令可确认问题 :

s虚拟env-nite打包

结果报错类似:

evilenv[-serv-data,cpyon3-servi

上头虚拟env命令不识别--no-site-packages选项 。

版本化

问题影响当前所有Databricks运行时间版本,但Databricks运行时间版本包括Conda除外影响虚拟env图书馆20.0以上版

因果

问题因使用python虚拟env库版docker容器不支持--no-site-packages选项 。

Databricks运行时需要虚拟env库支持无站点包选项.选项删除虚拟env图书馆20.0以上版

可验证虚拟env库版本通过笔记本操作下命令

sh虚拟env-version

求解

安装兼容版时可指定兼容版解题虚拟env库里

例举设置virtualenv==16.0.0Dockerfile安装虚拟env库版本16.0.0版本库支持所需选项

文章有帮助吗