我正在构建一个使用conda的docker映像(在基本映像上安装了conda 4.5.10和miniconda 4.5.4)来创建环境并安装一些软件包。我遇到一个问题,在conda create
之后,此后续docker命令失败:
RUN source /opt/conda/bin/activate /opt/conda/envs/python2 && \
pip install --no-cache-dir --upgrade pip && \
pip install --no-cache-dir --upgrade -r /requirements_py2_pip.txt && \
rm /requirements_py2_pip.txt
错误是:
第12/17步:运行源/ opt / conda / bin / activate / opt / conda / envs / python2 && pip install --no-cache-dir --upgrade pip && pip install --no-cache-dir --upgrade -r /requirements_py2_pip.txt && rm /requirements_py2_pip.txt
--->在e828112b4ae0中运行。 找不到平台独立的库
找不到平台相关的库
考虑将$ PYTHONHOME设置为[:]
致命的Python错误:Py_Initialize:无法获取区域设置编码
ModuleNotFoundError:没有名为“ encodings”的模块
当前线程0x00007fe6d4851700(最新呼叫优先):
命令'/ bin / bash -c source / opt / conda / bin / activate / opt / conda / envs / python2 && pip install --no-cache-dir --upgrade pip && pip install --no-cache-dir --upgrade -r /requirements_py2_pip.txt && rm /requirements_py2_pip.txt'返回非零代码:134
它断断续续地失败的事实真的困扰着我,如果我每次都不愿意失败的话,但它大约有50%的时间失败了。我四处搜寻,发现了这样的SO线程:ImportError: No module named 'encodings',表明它可能是conda环境的问题。因此,我在间歇性故障之前添加了此docker命令:
RUN conda env list
令人讨厌的 that 命令也间歇性地失败。成功后将返回:
第12/18步:运行conda环境列表
--->在05eaa6f726a9中运行
#conda环境:
#
基本* / opt / conda
python3 / opt / conda / envs / python3
python3.6 /opt/conda/envs/python3.6
失败时返回:
第12/18步:运行conda环境列表
--->在20247acc3824中运行
找不到平台独立的库
找不到平台相关的库
考虑将$ PYTHONHOME设置为[:]
致命的Python错误:Py_Initialize:无法获取区域设置编码
ModuleNotFoundError:没有名为“ encodings”的模块
当前线程0x00007f7a5f5ef700(最近调用优先):
命令“ / bin / bash -c conda env list”返回非零代码:139
您将看到与上一个错误非常相似。这告诉我,使用以下命令创建的conda环境存在问题:
# Create a Python 2.x environment using conda including at least the ipython kernel
# and the kernda utility. Add any additional packages you want available for use
# in a Python 2 notebook to the first line here (e.g., pandas, matplotlib, etc.)
RUN conda create --quiet --yes -p $CONDA_DIR/envs/python2 python=2.7 --file requirements_py2_conda.txt && \
source /opt/conda/bin/activate /opt/conda/envs/python2 && \
conda remove --quiet --yes --force qt pyqt && \
conda clean -tipsy && \
rm -rf $CONDA_DIR/envs/python2/share/jupyter/lab/staging && \
rm -rf /usr/local/share/.cache /tmp/* /opt/conda/pkgs/* /opt/conda/envs/python2/pkgs/* \
/requirements_py2_conda.txt /opt/conda/envs/python3/pkgs/*
我在成功构建和失败构建中都比较了该命令的输出。两者都安装相同的软件包,只是碰巧以不同的顺序安装它们。
顺便说一下,requirements_py2_conda.txt
包含:
beautifulsoup4=4.6.*
bokeh=0.13.*
bz2file=0.98
cloudpickle=0.5.*
colour=0.1.*
configparser=3.5.*
cython=0.28.*
dill=0.2.*
fastparquet=0.1.*
future=0.16.*
gensim=3.4.*
graphviz=2.40.*
h5py=2.8.*
hdf5=1.10.*
imageio=2.3.*
ipykernel=4.8.*
ipython=5.8.*
ipywidgets=7.4.*
keras=2.2.*
lxml=4.2.*
matplotlib=2.2.*
mysqlclient=1.3.*
mpld3=0.3
nltk=3.3.*
nose=1.3.*
numba=0.39.*
numexpr=2.6.*
numpy=1.15.*
pandas=0.23.*
pathlib2=2.3.*
patsy=0.5.*
pexpect=4.6.*
pivottablejs=0.9.*
protobuf=3.*
pyemd=0.5.*
pymc3=3.5
pyparsing=2.2.*
pystan=2.17.*
pytest=3.7.*
python=2.7.*
pylint
py-xgboost=0.72.*
pyyaml=3.13
requests=2.19.*
scandir=1.*
scikit-image=0.14.*
scikit-learn=0.19.*
scipy=1.1.*
seaborn=0.9.*
sh=1.12.*
simplegeneric=0.8.*
singledispatch=3.4.0.*
six=1.11.*
sortedcontainers=2.0.*
sqlalchemy=1.2.*
SQLAlchemy=1.2.*
statsmodels=0.9.*
subprocess32=3.5.*
sympy=1.2.*
tabulate=0.8.*
tensorflow=1.10.*
texlive-core=20180414
theano=1.0.*
widgetsnbextension=3.4.*
xlrd=1.1.*
错误消息提示
考虑将$ PYTHONHOME设置为[:]
为了查看是否是我添加的问题:
echo $PYTHONHOME
无论构建成功还是失败,都导致相同的输出(即空PYTHONHOME):
第12/20步:运行echo $ PYTHONHOME
--->在59ce6f2776c7中运行卸下中间容器59ce6f2776c7
---> cee1ad9f695e
我现在很困惑。我不知道下一步该怎么做才能进行调查,而且我对conda不熟悉(我没有编写Dockerfile,但是这些间歇性故障使我受阻,因此我正在调查)。我对尝试发现问题的任何建议都将受到欢迎。