Machinelearningnotebooks: Failed to Install azureml-sdk on Windows

Created on 7 Aug 2019  路  12Comments  路  Source: Azure/MachineLearningNotebooks

Hi,

I have Python 3.7.4 installed on my Windows desktop. I was trying to install the azureml python sdk using pip install azureml-sdk, but it has error: ERROR: Could not find a version that satisfies the requirement azureml-dataprep-native<14.0.0,>=13.0.0 (from azureml-dataprep<1.2.0a,>=1.1.9a->azureml-sdk) (from versions: none) ERROR: No matching distribution found for azureml-dataprep-native<14.0.0,>=13.0.0 (from azureml-dataprep<1.2.0a,>=1.1.9a->azureml-sdk)

Do you know how to resolve it? Thanks!

Data4ML product-question

Most helpful comment

confirm that rolling back to pip 19.0 solves the problem.

All 12 comments

Yeah. Thanks for providing the doc.

I am getting the following similar to the issue above, and I went to the document and failed to see the fix, Can you please help?

 Downloading azureml_dataprep_native-13.2.0-cp37-cp37m-manylinux1_x86_64.whl (1.3 MB)
ERROR: Could not find a version that satisfies the requirement dotnetcore2>=2.1.9 (from azureml-dataprep[fuse]<1.2.0a,>=1.1.35a->azureml-sdk[notebooks]) (from versions: none)
ERROR: No matching distribution found for dotnetcore2>=2.1.9 (from azureml-dataprep[fuse]<1.2.0a,>=1.1.35a->azureml-sdk[notebooks])

Have the same problem overnight, I think something changed on the Azure Py stack -- no good explanation why my builds failed otherwise.

I am getting the following similar to the issue above, and I went to the document and failed to see the fix, Can you please help?

 Downloading azureml_dataprep_native-13.2.0-cp37-cp37m-manylinux1_x86_64.whl (1.3 MB)
ERROR: Could not find a version that satisfies the requirement dotnetcore2>=2.1.9 (from azureml-dataprep[fuse]<1.2.0a,>=1.1.35a->azureml-sdk[notebooks]) (from versions: none)
ERROR: No matching distribution found for dotnetcore2>=2.1.9 (from azureml-dataprep[fuse]<1.2.0a,>=1.1.35a->azureml-sdk[notebooks])

issue filed here https://github.com/pypa/pip/issues/7632. I am using older version of pip (19.) for a workaround.

confirm that rolling back to pip 19.0 solves the problem.

confirm that rolling back to pip 19.0 solves the problem.

I'm deploying a package on azure web app using kudu -- i dont see how I can change the behavior of the pip upgrade command in the script. Is it configurable ? I'd like to pin the pip version if its possible

confirm that rolling back to pip 19.0 solves the problem.

I'm deploying a package on azure web app using kudu -- i dont see how I can change the behavior of the pip upgrade command in the script. Is it configurable ? I'd like to pin the pip version if its possible

same issue here

In case you are experiencing this error while using Azure Machine Learning Compute (AML Compute):

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
ERROR: Could not find a version that satisfies the requirement dotnetcore2>=2.1.9 (from azureml-dataprep[fuse,pandas]~=1.1->-r /azureml-environment-setup/condaenv.k6rqgf2r.requirements.txt (line 12)) (from versions: none)
ERROR: No matching distribution found for dotnetcore2>=2.1.9 (from azureml-dataprep[fuse,pandas]~=1.1->-r /azureml-environment-setup/condaenv.k6rqgf2r.requirements.txt (line 12))

Manually setting the pip version back to 19 for the Conda environment works:

train_env = Environment(name="mytrainenv")
train_conda_deps = CondaDependencies.create(pip_packages=['sklearn', ...])

# Manually downgrade to pip 19.x
train_conda_deps.add_conda_package("pip==19.3.1")

train_env.python.conda_dependencies = train_conda_deps
train_env.docker.enabled = True
train_env.docker.base_image = DEFAULT_CPU_IMAGE

In case you are experiencing this error while using Azure Machine Learning Compute (AML Compute):

WARNING: pip is being invoked by an old script wrapper. This will fail in a future version of pip.
Please see https://github.com/pypa/pip/issues/5599 for advice on fixing the underlying issue.
To avoid this problem you can invoke Python with '-m pip' instead of running pip directly.
ERROR: Could not find a version that satisfies the requirement dotnetcore2>=2.1.9 (from azureml-dataprep[fuse,pandas]~=1.1->-r /azureml-environment-setup/condaenv.k6rqgf2r.requirements.txt (line 12)) (from versions: none)
ERROR: No matching distribution found for dotnetcore2>=2.1.9 (from azureml-dataprep[fuse,pandas]~=1.1->-r /azureml-environment-setup/condaenv.k6rqgf2r.requirements.txt (line 12))

Manually setting the pip version back to 19 for the Conda environment works:

train_env = Environment(name="mytrainenv")
train_conda_deps = CondaDependencies.create(pip_packages=['sklearn', ...])

# Manually downgrade to pip 19.x
train_conda_deps.add_conda_package("pip==19.3.1")

train_env.python.conda_dependencies = train_conda_deps
train_env.docker.enabled = True
train_env.docker.base_image = DEFAULT_CPU_IMAGE

Thanks, this worked for me

Should be working again now, pip update has been released.

TL;DR

@csiebler is right, just upgrade your PIP to 20.0.2.

Had same issue and the problem was related to the version of the PIP

Had same issue and the problem was related to the version of the PIP. Downgrade to a version such as 19.3.1 or better, upgrade to 20.0.2 that fixes the issue #7626.

Below we have a deep dive on the issue.

Why upgrading to PIP 20.0.1 is failing dotnetcore2

According to the PIP release notes, the version 20.0.1 is based on the version 20.0.0 that contains deprecations and removals, including the issue #6908.

A closer inspection to the pull request #7354 reveled a number of changes to the file pep425tags.py, which _Generate and work with PEP 425 Compatibility Tags_.

Let's run some code to understand that.

Using PIP 19.3.1

# Make sure to use PIP 19.3.1
pip --version

# Return the supported tags
python -c "import pip._internal.pep425tags; print(pip._internal.pep425tags.get_supported())"

 ```

 will return

 ```
 [('cp36', 'cp36m', 'manylinux2014_x86_64'), ('cp36', 'cp36m', 'manylinux2010_x86_64'), ('cp36', 'cp36m', 'manylinux1_x86_64'), ('cp36', 'cp36m', 'linux_x86_64'), ('cp36', 'abi3', 'manylinux2014_x86_64'), ('cp36', 'abi3', 'manylinux2010_x86_64'), ('cp36', 'abi3', 'manylinux1_x86_64'), ('cp36', 'abi3', 'linux_x86_64'), ('cp36', 'none', 'manylinux2014_x86_64'), ('cp36', 'none', 'manylinux2010_x86_64'), ('cp36', 'none', 'manylinux1_x86_64'), ('cp36', 'none', 'linux_x86_64'), ('cp35', 'abi3', 'manylinux2014_x86_64'), ('cp35', 'abi3', 'manylinux2010_x86_64'), ('cp35', 'abi3', 'manylinux1_x86_64'), ('cp35', 'abi3', 'linux_x86_64'), ('cp34', 'abi3', 'manylinux2014_x86_64'), ('cp34', 'abi3', 'manylinux2010_x86_64'), ('cp34', 'abi3', 'manylinux1_x86_64'), ('cp34', 'abi3', 'linux_x86_64'), ('cp33', 'abi3', 'manylinux2014_x86_64'), ('cp33', 'abi3', 'manylinux2010_x86_64'), ('cp33', 'abi3', 'manylinux1_x86_64'), ('cp33', 'abi3', 'linux_x86_64'), ('cp32', 'abi3', 'manylinux2014_x86_64'), ('cp32', 'abi3', 'manylinux2010_x86_64'), ('cp32', 'abi3', 'manylinux1_x86_64'), ('cp32', 'abi3', 'linux_x86_64'), ('py3', 'none', 'manylinux2014_x86_64'), ('py3', 'none', 'manylinux2010_x86_64'), ('py3', 'none', 'manylinux1_x86_64'), ('py3', 'none', 'linux_x86_64'), ('cp36', 'none', 'any'), ('cp3', 'none', 'any'), ('py36', 'none', 'any'), ('py3', 'none', 'any'), ('py35', 'none', 'any'), ('py34', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')]
 ```
 From this list what matters to us is the tupple ```('py3', 'none', 'linux_x86_64')```. **Why?** Because if we download the wheel [dotnetcore2-2.1.12-py3-none-manylinux1_x86_64.whl](https://files.pythonhosted.org/packages/29/99/16de574097ee3ee9076afd07290f99df889f9068d76b01c68977adbd822c/dotnetcore2-2.1.12-py3-none-manylinux1_x86_64.whl), rename the file to **.zip**, decompress it and open the file ```dotnetcore2-2.1.12.dist-info/WHEEL```, we will see the following...

 ```
Wheel-Version: 1.0
Generator: bdist_wheel (0.32.3)
Root-Is-Purelib: true
Tag: py3-none-linux_x86_64

Notice the line Tag: py3-none-linux_x86_64, compatible with the supported tags as we saw in the tupple ('py3', 'none', 'linux_x86_64').

Using PIP 20.0.1

# Upgrade to PIP 20.0.1
python -m pip install pip==20.0.1

# Make sure it is upgraded to 20.0.1
pip --version

# Return the supported tags
python -c "import pip._internal.pep425tags; print(pip._internal.pep425tags.get_supported())"

 ```

 will return

 ```
 [<cp36-cp36m-manylinux2014_x86_64 @ 140664842340808>, <cp36-cp36m-manylinux2010_x86_64 @ 140664842340680>, <cp36-cp36m-manylinux1_x86_64 @ 140664842340744>, <cp36-cp36m-linux_x86_64 @ 140664842340872>, <cp36-abi3-manylinux2014_x86_64 @ 140664842341000>, <cp36-abi3-manylinux2010_x86_64 @ 140664842341064>, <cp36-abi3-manylinux1_x86_64 @ 140664842341128>, <cp36-abi3-linux_x86_64 @ 140664842341192>, <cp36-none-manylinux2014_x86_64 @ 140664842341320>, <cp36-none-manylinux2010_x86_64 @ 140664842341384>, <cp36-none-manylinux1_x86_64 @ 140664842341448>, <cp36-none-linux_x86_64 @ 140664842341512>, <cp35-abi3-manylinux2014_x86_64 @ 140664842341640>, <cp35-abi3-manylinux2010_x86_64 @ 140664842341704>, <cp35-abi3-manylinux1_x86_64 @ 140664842341768>, <cp35-abi3-linux_x86_64 @ 140664842341832>, <cp34-abi3-manylinux2014_x86_64 @ 140664842341960>, <cp34-abi3-manylinux2010_x86_64 @ 140664842342024>, <cp34-abi3-manylinux1_x86_64 @ 140664842342088>, <cp34-abi3-linux_x86_64 @ 140664842342152>, <cp33-abi3-manylinux2014_x86_64 @ 140664842342280>, <cp33-abi3-manylinux2010_x86_64 @ 140664842342344>, <cp33-abi3-manylinux1_x86_64 @ 140664842391624>, <cp33-abi3-linux_x86_64 @ 140664842391688>, <cp32-abi3-manylinux2014_x86_64 @ 140664842391816>, <cp32-abi3-manylinux2010_x86_64 @ 140664842391880>, <cp32-abi3-manylinux1_x86_64 @ 140664842391944>, <cp32-abi3-linux_x86_64 @ 140664842392008>, <py36-none-manylinux2014_x86_64 @ 140664842392264>, <py36-none-manylinux2010_x86_64 @ 140664842392136>, <py36-none-manylinux1_x86_64 @ 140664842392200>, <py36-none-linux_x86_64 @ 140664842392328>, <cp36-none-any @ 140664842392456>, <py36-none-any @ 140664842392520>, <py3-none-any @ 140664842392584>, <py35-none-any @ 140664842392648>, <py34-none-any @ 140664842392712>, <py33-none-any @ 140664842392776>, <py32-none-any @ 140664842392840>, <py31-none-any @ 140664842392904>, <py30-none-any @ 140664842392968>]
 ```
 The closest that uses **py3** is ```<py3-none-any @ 140664842392584>```. 

 If we run ```pip install dotnetcore2-2.1.12-py3-none-manylinux1_x86_64.whl``` we get the error ```ERROR: dotnetcore2-2.1.12-py3-none-manylinux1_x86_64.whl is not a supported wheel on this platform.```.


 ### What if we change the tag manually?

 What if we change the tag in the file ```dotnetcore2-2.1.12.dist-info/WHEEL``` to ```py3-none-any```, like this...

 ```
Wheel-Version: 1.0
Generator: bdist_wheel (0.32.3)
Root-Is-Purelib: true
Tag: py3-none-any

Notice the line Tag: py3-none-any, compatible with the supported tag <py3-none-any @ 140664842392584>

Once the change is applied, we simple zip the folders again and rename the file to something like dotnetcore2-2.1.12-py3-none-any.whl

Now if we run ....
pip install dotnetcore2-2.1.12-py3-none-any.whl

_We will be able to install the dotnetcore2 wheel using PIP 20.0.1._

Was this page helpful?
0 / 5 - 0 ratings