Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ERROR: Cannot uninstall 'ruamel-yaml' while creating docker image for azure ML ACI deployment

I am trying to deploy machine learning model in azure ACI but i am getting following error while creating a docker image

Pip subprocess error:
ERROR: Cannot uninstall 'ruamel-yaml'. It is a distutils installed project and thus we cannot 
accurately determine which files belong to it which would lead to only a partial uninstall.

Below is my yml file for pip dependencies

name: project_environment
dependencies:
# The python interpreter version.

# Currently Azure ML only supports 3.5.2 and later.


- pip:
  # Required packages for AzureML execution, history, and data preparation.
  - pandas
  - azureml-defaults
  - azureml-sdk
  - azureml-widgets
  - numpy
  - tensorflow-gpu
  - keras
  - azureml-defaults
  - torch==1.4.0
  - scikit-learn==0.22.2.post1

and if i use conda instead of pip then i am getting following error

Step 11/13 : RUN CONDA_ROOT_DIR=$(conda info --root) && if [ -n 
"$AZUREML_CONDA_ENVIRONMENT_PATH" ]; then conda env update -p 
"$AZUREML_CONDA_ENVIRONMENT_PATH" -f '/var/azureml-app/binary_2.yml'; else 
conda env update -n base -f '/var/azureml-app/binary_2.yml'; fi && conda 
clean -aqy && rm -rf /root/.cache/pip && rm -rf "$CONDA_ROOT_DIR/pkgs" && 
find "$CONDA_ROOT_DIR" -type d -name __pycache__ -exec rm -rf {} +
---> Running in 9e6eb7278bfc  
[91mUnable to install package for Conda.

Please double check and ensure you dependencies file has
the correct spelling.  You might also try installing the
conda-env-Conda package to see if provides the required
installer. 
[0mThe command '/bin/sh -c CONDA_ROOT_DIR=$(conda info --root) && if [ -n 
"$AZUREML_CONDA_ENVIRONMENT_PATH" ]; then conda env update -p 
"$AZUREML_CONDA_ENVIRONMENT_PATH" -f '/var/azureml-app/binary_2.yml'; else 
 conda env update -n base -f '/var/azureml-app/binary_2.yml'; fi && conda 
clean 
-aqy && rm -rf /root/.cache/pip && rm -rf "$CONDA_ROOT_DIR/pkgs" && find 
"$CONDA_ROOT_DIR" -type d -name __pycache__ -exec rm -rf {} +' returned a 
non- 
 zero code: 255
 2020/08/12 19:36:09 Container failed during run: acb_step_0. No retries 
 remaining.
 failed to run step ID: acb_step_0: exit status 255

**Can anyone please help me **

like image 893
vishal Avatar asked Aug 12 '20 19:08

vishal


2 Answers

This is a problem ever since pip version 10 (relevant discussion on the pip repo). That thread details a few solutions:

Manually delete the files from site-packages. In my case, to delete ruamel.yaml the command was rm -rf /path/to/anaconda3/lib/python3.7/site-packages/ruamel*

You can also downgrade pip to version <10, reinstall ruamel with the --disable-pip-version-check option, then reverse the downgrade with pip install --upgrade pip.

Update: here's a 1-liner that deletes the ruamel packages:

rm -rf $(python -c "from distutils.sysconfig import get_python_lib; print(get_python_lib())")/ruamel*

Breaking that down: everything in the $(...) is a one-liner to get your global site-packages dir (source). The rm -rf deletes the ruamel package directories recursively. The /ruamel* suffix targets the ruamel package.

I've encountered this same issue with other packages (boto, gmpy2, pycosat) and the solution was the same, except to replace the suffix.

like image 72
crypdick Avatar answered Sep 26 '22 14:09

crypdick


maybe use "pip install --ignore-installed [package]"

like image 32
bozi young Avatar answered Sep 29 '22 14:09

bozi young