apache / mxnet

Lightweight, Portable, Flexible Distributed/Mobile Deep Learning with Dynamic, Mutation-aware Dataflow Dep Scheduler; for Python, R, Julia, Scala, Go, Javascript and more
https://mxnet.apache.org
Apache License 2.0
20.79k stars 6.79k forks source link

Oddly restrictive (and outdated) requirements in Windows wheel #19885

Open IRDonch opened 3 years ago

IRDonch commented 3 years ago
$ wget https://files.pythonhosted.org/packages/64/20/76af36cad6754a15f39d3bff19e09921dec72b85261e455d4edc50ebffa8/mxnet-1.7.0.post2-py2.py3-none-manylinux2014_x86_64.whl https://files.pythonhosted.org/packages/2a/4f/fc1adda6d1ceef5c9b3921e6c6d208b86b1b3ed61686a84c1b1bcc821798/mxnet-1.7.0.post2-py2.py3-none-win_amd64.whl
[...]

$ bsdtar -xOf mxnet-1.7.0.post2-py2.py3-none-manylinux2014_x86_64.whl mxnet-1.7.0.post2.dist-info/METADATA | grep '^Requires-Dist:'
Requires-Dist: numpy (<2.0.0,>1.16.0)
Requires-Dist: requests (<3,>=2.20.0)
Requires-Dist: graphviz (<0.9.0,>=0.8.1)

$ bsdtar -xOf mxnet-1.7.0.post2-py2.py3-none-win_amd64.whl mxnet-1.7.0.post2.dist-info/METADATA | grep '^Requires-Dist:'
Requires-Dist: numpy (<1.17.0,>=1.8.2)
Requires-Dist: requests (<2.19.0,>=2.18.4)
Requires-Dist: graphviz (<0.9.0,>=0.8.1)

As you can see, the requirements of the Windows wheel are very different from the Linux wheel. They have older versions (in the case of requests there's not even any overlap between supported versions), and they restrict minor versions, leaving only a very narrow range of supported versions.

This isn't a bug per se, but it seems very suspicious. Is this really intentional?

github-actions[bot] commented 3 years ago

Welcome to Apache MXNet (incubating)! We are on a mission to democratize AI, and we are glad that you are contributing to it by opening this issue. Please make sure to include all the relevant context, and one of the @apache/mxnet-committers will be here shortly. If you are interested in contributing to our project, let us know! Also, be sure to check out our guide on contributing to MXNet and our development guides wiki.

leezu commented 3 years ago

cc @yajiedesign

TanyRay commented 3 years ago

@leezu seems like this issue is applicable for 1.6.0 is actual as well for Windows. Could you check it? For now this issue looks like as nightmare.

TanyRay commented 3 years ago

The same is actual also for 1.6.0: META-DATA from wheel mxnet-1.6.0-py2.py3-none-win_amd64.whl:

Metadata-Version: 2.1
Name: mxnet
Version: 1.6.0
Summary: MXNet is an ultra-scalable deep learning framework. This version uses openblas.
Home-page: https://github.com/apache/incubator-mxnet
Author: UNKNOWN
Author-email: UNKNOWN
License: Apache 2.0
Description-Content-Type: UNKNOWN
Requires-Dist: numpy (<1.17.0,>=1.8.2)
Requires-Dist: requests (<2.19.0,>=2.18.4)
Requires-Dist: graphviz (<0.9.0,>=0.8.1)

MXNet Python Package

This lists of dependencies reminds 1.3.1

TanyRay commented 3 years ago

The same is actual for 1.7.0: META-DATA from wheel mxnet-1.7.0-py2.py3-none-win_amd64

Metadata-Version: 2.1 Name: mxnet Version: 1.7.0 Summary: MXNet is an ultra-scalable deep learning framework. This version uses openblas. Home-page: https://github.com/apache/incubator-mxnet Author: UNKNOWN Author-email: UNKNOWN License: Apache 2.0 Requires-Dist: numpy (<1.17.0,>=1.8.2) Requires-Dist: requests (<2.19.0,>=2.18.4) Requires-Dist: graphviz (<0.9.0,>=0.8.1)

MXNet Python Package

tcfkaj commented 3 years ago

Most definitely a nightmare. This makes installing other co-dependencies, including gluoncv , difficult to do automatically. Consistent installation from pip is an essential feature of any popular deep learning framework being used across multiple platforms. We already have a large portion of code base written in mxnet and migrating all of it to something else like pytorch will be a major pain.

Is there any way to contribute an updated wheel?

Jinmun-Park commented 3 years ago

Hi, do we have any update on this? I am having same issue here. requirements.txt will not be installed due to dependency issue.