`pip install -e .[dev]` in Python 3.9.1+ fails because `jaxlib==0.1.55` cannot be found
Author: forest1988
Pull request: no

## Environment info
     
- `transformers` version: 4.2.0dev0 (the error is during the installation)
- Platform: Linux-4.15.0-123-generic-x86_64-with-glibc2.10
- Python version: 3.9.1 (the error occurs) -> 3.8.0 (the error does not occur)
- PyTorch version (GPU?): 1.7.1 (True)
- Tensorflow version (GPU?): 2.4.0 (False)
- Using GPU in script?: No
- Using distributed or parallel set-up in script?: No

### Who can help
 
 documentation: @sgugger

## Information

This is the report of a bug that I encountered during the [dev] version of `transformers`.
I try to create a conda environment to install `transformer [dev]` by `pip install -e .[dev]`, 
but failed due to the `jaxlib` version.

## To reproduce

Git clone the forked `transformers` and update it to be `This branch is even with huggingface:master.`

``` sh
  $  git clone git@github.com:forest1988/transformers.git forest1988_transformers
  $  cd forest1988_transformers/
  $  git remote add upstream https://github.com/huggingface/transformers.git
  $  git pull upstream main
  $  git pull upstream master
  $  git push origin master
```

Create a new conda env.

``` sh
  $  conda create -n transformers-for-contribute
  $  conda activate transformers-for-contribute
```

Then, try to install `transformers [dev]` by `pip install -e .[dev]`.

``` sh
(transformers-for-contribute) ****@**** $ conda install pip
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: ****/.pyenv/versions/anaconda3-2020.07/envs/transformers-for-contribute

  added / updated specs:
    - pip


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ca-certificates-2020.12.8  |       h06a4308_0         121 KB
    certifi-2020.12.5          |   py39h06a4308_0         140 KB
    openssl-1.1.1i             |       h27cfd23_0         2.5 MB
    pip-20.3.3                 |   py39h06a4308_0         1.8 MB
    python-3.9.1               |       hdb3f193_2        18.1 MB
    setuptools-51.0.0          |   py39h06a4308_2         726 KB
    wheel-0.36.2               |     pyhd3eb1b0_0          33 KB
    ------------------------------------------------------------
                                           Total:        23.4 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main
  ca-certificates    pkgs/main/linux-64::ca-certificates-2020.12.8-h06a4308_0
  certifi            pkgs/main/linux-64::certifi-2020.12.5-py39h06a4308_0
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.33.1-h53a641e_7
  libedit            pkgs/main/linux-64::libedit-3.1.20191231-h14c3975_1
  libffi             pkgs/main/linux-64::libffi-3.3-he6710b0_2
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
  ncurses            pkgs/main/linux-64::ncurses-6.2-he6710b0_1
  openssl            pkgs/main/linux-64::openssl-1.1.1i-h27cfd23_0
  pip                pkgs/main/linux-64::pip-20.3.3-py39h06a4308_0
  python             pkgs/main/linux-64::python-3.9.1-hdb3f193_2
  readline           pkgs/main/linux-64::readline-8.0-h7b6447c_0
  setuptools         pkgs/main/linux-64::setuptools-51.0.0-py39h06a4308_2
  sqlite             pkgs/main/linux-64::sqlite-3.33.0-h62c20be_0
  tk                 pkgs/main/linux-64::tk-8.6.10-hbc83047_0
  tzdata             pkgs/main/noarch::tzdata-2020d-h14c3975_0
  wheel              pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
  xz                 pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
  zlib               pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3


Proceed ([y]/n)? y


Downloading and Extracting Packages
pip-20.3.3           | 1.8 MB    | ################################################################################################################################################################# | 100%
ca-certificates-2020 | 121 KB    | ################################################################################################################################################################# | 100%
python-3.9.1         | 18.1 MB   | ################################################################################################################################################################# | 100%
certifi-2020.12.5    | 140 KB    | ################################################################################################################################################################# | 100%
setuptools-51.0.0    | 726 KB    | ################################################################################################################################################################# | 100%
wheel-0.36.2         | 33 KB     | ################################################################################################################################################################# | 100%
openssl-1.1.1i       | 2.5 MB    | ################################################################################################################################################################# | 100%
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
(transformers-for-contribute) ****@**** $ pwd
****/workspace/Clone/forest1988_transformers
(transformers-for-contribute) ****@**** $ pip install -e ".[dev]"
Obtaining file:///****/workspace/Clone/forest1988_transformers
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
ERROR: Could not find a version that satisfies the requirement jaxlib==0.1.55; extra == "dev" (from transformers[dev])
ERROR: No matching distribution found for jaxlib==0.1.55; extra == "dev"
(transformers-for-contribute) ****@**** $ pip install jaxlib==0.1.55
ERROR: Could not find a version that satisfies the requirement jaxlib==0.1.55
ERROR: No matching distribution found for jaxlib==0.1.55
```

When I downgraded the python to 3.8 by `conda install python==3.8`, then `pip install -e ".[dev]"` works.

I tried other versions of python installed via conda:
- `conda install python==3.7` : OK
- `conda install python==3.9` : the same error occurs

## Expected behavior

Depending on the version of python we are using, we may find that the version of `jaxlib` specified in [`setup.py`](https://github.com/huggingface/transformers/blob/master/setup.py) is missing, and it causes `pip install -e .[dev]` failure.

For the `transformers [dev]`, is it better not to use python 3.9+? (I apologize if I missed the explanation)

If I change `jaxlib==0.1.55` to `jaxlib>=0.1.55` in `setup.py`, will it cause problems elsewhere?

Comments:
I retried to install `transformers [dev]` with Python 3.9.1. 
The latest `git tag` in the cloned repository is `v4.2.1`.

I assumed that the same error would occur, but in this time it failed in installing `tensorflow`. 

``` sh
****@**** $ conda create -n transformers-py39-dev
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: ****/.pyenv/versions/anaconda3-2020.07/envs/transformers-py39-dev



Proceed ([y]/n)? y

Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
#     $ conda activate transformers-py39-dev
#
# To deactivate an active environment, use
#
#     $ conda deactivate

****@**** $ conda activate transformers-py39-dev
(transformers-py39-dev) ****@**** $ conda install pip
Collecting package metadata (current_repodata.json): done
Solving environment: done

## Package Plan ##

  environment location: ****/.pyenv/versions/anaconda3-2020.07/envs/transformers-py39-dev

  added / updated specs:
    - pip


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    setuptools-51.1.2          |   py39h06a4308_4         743 KB
    ------------------------------------------------------------
                                           Total:         743 KB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main
  ca-certificates    pkgs/main/linux-64::ca-certificates-2020.12.8-h06a4308_0
  certifi            pkgs/main/linux-64::certifi-2020.12.5-py39h06a4308_0
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.33.1-h53a641e_7
  libedit            pkgs/main/linux-64::libedit-3.1.20191231-h14c3975_1
  libffi             pkgs/main/linux-64::libffi-3.3-he6710b0_2
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.1.0-hdf63c60_0
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.1.0-hdf63c60_0
  ncurses            pkgs/main/linux-64::ncurses-6.2-he6710b0_1
  openssl            pkgs/main/linux-64::openssl-1.1.1i-h27cfd23_0
  pip                pkgs/main/linux-64::pip-20.3.3-py39h06a4308_0
  python             pkgs/main/linux-64::python-3.9.1-hdb3f193_2
  readline           pkgs/main/linux-64::readline-8.0-h7b6447c_0
  setuptools         pkgs/main/linux-64::setuptools-51.1.2-py39h06a4308_4
  sqlite             pkgs/main/linux-64::sqlite-3.33.0-h62c20be_0
  tk                 pkgs/main/linux-64::tk-8.6.10-hbc83047_0
  tzdata             pkgs/main/noarch::tzdata-2020d-h14c3975_0
  wheel              pkgs/main/noarch::wheel-0.36.2-pyhd3eb1b0_0
  xz                 pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
  zlib               pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3
```

``` sh
(transformers-py39-dev) ****@**** $ pwd
****/workspace/Clone/transformers
(transformers-py39-dev) ****@**** $ pip install -e ".[dev]"
Obtaining file:///****/workspace/Clone/transformers
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
ERROR: Could not find a version that satisfies the requirement tensorflow>=2.3; extra == "dev" (from transformers[dev])
ERROR: No matching distribution found for tensorflow>=2.3; extra == "dev"
```

Is it possible that you have decided not to support Python 3.9+ at this time because of the compatibility with the libraries `transformers` depends on?

I apologize if there is any misunderstanding.


You can use transformers without TensorFlow or FLAX installed, there is nothing in the code of transformers that is incompatible with Python 3.9. It looks like you want TensorFlow support for Python 3.9, which you should ask on the TensorFlow GitHub.

@sgugger 
Thank you for your comment.
Excuse me for making you confused. It seems that there was a lack of information in my explanation.

In this case, my aim is not to use transformers with TensorFlow or FLAX.
What I'd like to do is install `transformers [dev]` to open PRs in the future, so I'm a bit confused about whether I can install it with Python 3.9+.
I'm not familiar with installing a `[dev]` version software, so I opened this issue to ask if we can install the [dev] version transformers with Python 3.9+ and open PRs using it.

I can use Python <= 3.8, so this question is not urgent.
I apologize for making you confused.

You will be able to open PRs without installing `transformers [dev]`, it just mean you won't be able to run all the tests locally. 
`pip install transformers [torch, sentencepiece, tokenizers, testing, quality, ja, docs, sklearn, modelcreation]` might work to install all the depencies except TensorFlow and Flax (I just took all what is in dev and removed TensorFlow and Flax to create this command) but no guarantee.

If you're not an advanced user, I would recommend sticking with Python 3.6 to 3.8 while waiting for TensorFlow and Flax to support Python 3.9, as installing things with it might have some challenges :-)

Hi @sgugger,

Thank you for telling me how to install it!

When I tried to open a PR before, the auto-formatting of the code didn't work properly (I think it was when I tried to open a PR in `datasets`, not in `transformer`), and I assumed that I had to use `[dev]` versions when I want to open a PR. 
Now I think that the matter was caused by my have not installed the proper version of `testing`, `quality`, and `docs` then.

I would like to become an advanced user eventually, but not now, so I would like to use Python 3.6 to 3.8 for now.

Thanks again!


Yep getting the same error, 
On a fresh 3.9 Python conda:
`ERROR: No matching distribution found for jaxlib==0.1.55; extra == "dev"`

To fix it, I moved back to Python 3.8.8, then `pip install -e ".[dev]"` worked fine