问题
当你使用一个码头工人的容器,包括预先构建的Python库,Python命令失败并不是创建虚拟环境。下面的错误消息是可见的在司机日志。
20/02/29 16:38:35警告PythonDriverWrapper:未能开始repl replid - 5 - b591 - 0 - ce42 - 78 - ef3 - 7 . io .IOException:不能运行程序”/ local_disk0 / pythonVirtualEnvDirs / virtualenv - 56 - a5be60 - 3 - e71 - 486 f - ac04 - 08 - e8f2491032 / bin / python”(在目录“。”):错误= 2,没有这样的文件或目录在java.lang.ProcessBuilder.start (ProcessBuilder.java: 1048)美元org.apache.spark.util.Utils .executeCommand (Utils.scala: 1367)美元org.apache.spark.util.Utils .executeAndGetOutput (Utils.scala: 1393) org.apache.spark.util.Utils .executePythonAndGetOutput美元(跑龙套。scala:…java.lang.Thread.run (Thread.java: 748)造成的:. io .IOException:错误= 2,在java.lang.UNIXProcess没有这样的文件或目录。在java.lang.UNIXProcess forkAndExec(本地方法)。< init > (UNIXProcess.java: 247) java.lang.ProcessImpl.start (ProcessImpl.java: 134) java.lang.ProcessBuilder.start (ProcessBuilder.java: 1029)…17
你可以确认这个问题在笔记本通过运行下面的命令:
% sh virtualenv——no-site-packages
结果是一个错误消息类似如下:
用法:virtualenv[——版本][——with-traceback] [- v | - q][——发现{装入的}][p py][——造物主{内装式、cpython3-posix venv}][——播种机{应用数据,pip}] [——no-seed][——活化剂comma_separated_list][——明确][——system-site-packages][——符号链接|副本][——下载|——没有下载][——extra-search-dir d (d…]][——pip版本][——setuptools版本][——轮版本][——no-pip] [——no-setuptools] [——no-wheel] [——clear-app-data] [——symlink-app-data][——提示提示][h]桌子virtualenv:错误:以下参数要求:服务台
的virtualenv命令不承认——no-site-packages选择。
版本
这个问题影响到所有当前数据砖运行时版本,除了包括Conda砖运行时版本。它会影响virtualenv图书馆20.0.0及以上版本。
导致
这个问题是由于使用Pythonvirtualenv库版本不支持的集装箱码头工人——no-site-packages选择。
砖运行时需要的virtualenv库,支持——no-site-packages选项。这个选项了virtualenv图书馆20.0.0及以上版本。
你可以验证virtualenv图书馆在笔记本版本通过运行下面的命令:
% sh virtualenv——版本
解决方案
你可以通过指定解决问题当你安装一个兼容的版本virtualenv图书馆。
例如,设置virtualenv = = 16.0.0在Dockerfile安装virtualenv16.0.0库版本。这个版本的库支持所需的选项。