Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed to Install azureml-sdk on Windows #516

Closed
yuchaozh opened this issue Aug 6, 2019 · 19 comments
Closed

Failed to Install azureml-sdk on Windows #516

yuchaozh opened this issue Aug 6, 2019 · 19 comments
Labels
ADO Issue is documented on MSFT ADO for internal tracking Auto ML product-question

Comments

@yuchaozh
Copy link

yuchaozh commented Aug 6, 2019

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!

@purnesh42H
Copy link

Please follow "Local computer" section here https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-configure-environment.

@yuchaozh
Copy link
Author

yuchaozh commented Aug 7, 2019

Yeah. Thanks for providing the doc.

@yuchaozh yuchaozh closed this as completed Aug 7, 2019
@fboylu
Copy link

fboylu commented Jan 21, 2020

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])

@dougfoo
Copy link

dougfoo commented Jan 21, 2020

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])

@fboylu
Copy link

fboylu commented Jan 21, 2020

issue filed here pypa/pip#7632. I am using older version of pip (19.) for a workaround.

@maxkazmsft
Copy link
Member

confirm that rolling back to pip 19.0 solves the problem.

@dougfoo
Copy link

dougfoo commented Jan 23, 2020

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

@martijn1279
Copy link

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

@csiebler
Copy link

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:/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

@JanusAsmussen
Copy link

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:/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

@csiebler
Copy link

csiebler commented Feb 4, 2020

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

@marcelaldecoa
Copy link

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, 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.

@franva
Copy link

franva commented Feb 13, 2021

it's year 2021, it's still happening.

pip install azureml-sdk[notebooks,automl,explain]

image

I'm following Azure Machine Learning tutorial

pip version 20.1.1
python 3.7.8
OS: Windows 10

I do not want to set my pip version to an outdated version.
Is there any proper way to fix it?

@lostmygithubaccount
Copy link
Contributor

able to easily reproduce with fresh conda environment on macos using same pip version and python 3.7:

image

reopening until fixed

@YuandaXu
Copy link

Hi, @franva,

Learned this problem recently, and I tried on a computer under exactly same configs as yours :
pip version 20.1.1
python 3.7.8
OS: Windows 10
to see if I'm able to reproduce it.

Before install azureml-sdk, there were only 2 packages installed as initial environment:
image

then I executed "pip install azureml-sdk[notebooks,automl,explain] --no-cache-dir --user" but I seems could not reproduce the problem...

here is error/warnings I saw during my installation:
image

seems only notices about urllib3 and numpy incompatible...

ERROR: botocore 1.18.18 has requirement urllib3<1.26,>=1.20; python_version != "3.4", but you'll have urllib3 1.26.4 which is incompatible.
ERROR: azureml-automl-runtime 1.27.0.post1 has requirement numpy<1.19.0,>=1.16.0, but you'll have numpy 1.19.3 which is incompatible.
ERROR: azureml-train-automl-runtime 1.27.0.post1 has requirement numpy<1.19.0,>=1.16.0, but you'll have numpy 1.19.3 which is incompatible.

So would double confirm if it's still happening on your side..?

@YuandaXu
Copy link

@lostmygithubaccount
I'm trying to setup an macos to test it, will update soon.

@CESARDELATORRE
Copy link
Collaborator

@YuandaXu @lostmygithubaccount I believe the problem/issue is that the recommended installation of AutoML is not by adding the “automl” package by using pip, but by installing AutoML packages running the installation script, as specified in the AutoML Installation page:

https://docs.microsoft.com/en-us/azure/machine-learning/how-to-configure-auto-train#prerequisites

Which points to use the "automl_setup" script for Windows or the "automl_setup_mac.sh" for Mac, in the instructions:

https:/Azure/MachineLearningNotebooks/blob/master/how-to-use-azureml/automated-machine-learning/README.md#windows

Please confirm if the installation using the script works for you.

I raised an issue with the docs team so they remove the example of adding "automl" as package in the pip example in that generic doc for AML:
https://docs.microsoft.com/en-us/learn/modules/intro-to-azure-machine-learning-service/3-azure-ml-tools

@nibaccam
Copy link

nibaccam commented May 11, 2021

@CESARDELATORRE
Copy link
Collaborator

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ADO Issue is documented on MSFT ADO for internal tracking Auto ML product-question
Projects
None yet
Development

No branches or pull requests