jina-ai / jina

☁️ Build multimodal AI applications with cloud-native stack
https://docs.jina.ai
Apache License 2.0
20.93k stars 2.22k forks source link

[Pip] `jina` installation throws error until `wheel` is manually installed - should this be expected? #3071

Closed Rubix982 closed 3 years ago

Rubix982 commented 3 years ago

Describe the bug

Doing pip install jina or pip install pip install -U "jina[standard]" throw errors about not being built properly. The errors are respectively,

Collecting jina
  Using cached jina-2.0.15.tar.gz (293 kB)
Collecting grpcio>=1.33.1
  Using cached grpcio-1.39.0-cp38-cp38-manylinux2014_x86_64.whl (4.3 MB)
Collecting numpy
  Using cached numpy-1.21.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.8 MB)
Collecting protobuf>=3.13.0
  Using cached protobuf-3.17.3-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.0 MB)
Collecting pyyaml>=5.3.1
  Using cached PyYAML-5.4.1-cp38-cp38-manylinux1_x86_64.whl (662 kB)
Collecting pyzmq>=17.1.0
  Using cached pyzmq-22.1.0-cp38-cp38-manylinux2010_x86_64.whl (1.1 MB)
Collecting tornado>=5.1.0
  Using cached tornado-6.1-cp38-cp38-manylinux2010_x86_64.whl (427 kB)
Collecting six>=1.5.2
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Building wheels for collected packages: jina
  Building wheel for jina (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/saif/MLH/testing/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-cyn60dp1/jina/setup.py'"'"'; __file__='"'"'/tmp/pip-install-cyn60dp1/jina/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-aerkhkg2
       cwd: /tmp/pip-install-cyn60dp1/jina/
  Complete output (6 lines):
  usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: setup.py --help [cmd1 cmd2 ...]
     or: setup.py --help-commands
     or: setup.py cmd --help

  error: invalid command 'bdist_wheel'
  ----------------------------------------
  ERROR: Failed building wheel for jina
  Running setup.py clean for jina
Failed to build jina
Installing collected packages: six, grpcio, numpy, protobuf, pyyaml, pyzmq, tornado, jina
    Running setup.py install for jina ... done
Successfully installed grpcio-1.39.0 jina-2.0.15 numpy-1.21.1 protobuf-3.17.3 pyyaml-5.4.1 pyzmq-22.1.0 six-1.16.0 tornado-6.1

And for pip install -U "jina[standard]" which I ran after running pip install jina gives me the following logs,

Requirement already up-to-date: jina[standard] in ./venv/lib/python3.8/site-packages (2.0.15)
Requirement already satisfied, skipping upgrade: grpcio>=1.33.1 in ./venv/lib/python3.8/site-packages (from jina[standard]) (1.39.0)
Requirement already satisfied, skipping upgrade: numpy in ./venv/lib/python3.8/site-packages (from jina[standard]) (1.21.1)
Requirement already satisfied, skipping upgrade: protobuf>=3.13.0 in ./venv/lib/python3.8/site-packages (from jina[standard]) (3.17.3)
Requirement already satisfied, skipping upgrade: pyyaml>=5.3.1 in ./venv/lib/python3.8/site-packages (from jina[standard]) (5.4.1)
Requirement already satisfied, skipping upgrade: pyzmq>=17.1.0 in ./venv/lib/python3.8/site-packages (from jina[standard]) (22.1.0)
Requirement already satisfied, skipping upgrade: tornado>=5.1.0 in ./venv/lib/python3.8/site-packages (from jina[standard]) (6.1)
Collecting aiofiles
  Using cached aiofiles-0.7.0-py3-none-any.whl (13 kB)
Collecting aiohttp
  Using cached aiohttp-3.7.4.post0-cp38-cp38-manylinux2014_x86_64.whl (1.5 MB)
Collecting aiostream
  Using cached aiostream-0.4.3.tar.gz (20 kB)
Collecting cryptography
  Using cached cryptography-3.4.7-cp36-abi3-manylinux2014_x86_64.whl (3.2 MB)
Collecting docker
  Using cached docker-5.0.0-py2.py3-none-any.whl (146 kB)
Collecting fastapi
  Using cached fastapi-0.68.0-py3-none-any.whl (52 kB)
Collecting filelock
  Using cached filelock-3.0.12-py3-none-any.whl (7.6 kB)
Collecting lz4<3.1.2
  Using cached lz4-3.1.1-cp38-cp38-manylinux2010_x86_64.whl (1.8 MB)
Collecting pathspec
  Using cached pathspec-0.9.0-py2.py3-none-any.whl (31 kB)
Collecting pydantic
  Using cached pydantic-1.8.2-cp38-cp38-manylinux2014_x86_64.whl (13.7 MB)
Collecting python-multipart
  Using cached python-multipart-0.0.5.tar.gz (32 kB)
Collecting requests
  Using cached requests-2.26.0-py2.py3-none-any.whl (62 kB)
Collecting rich
  Using cached rich-10.6.0-py3-none-any.whl (208 kB)
Collecting uvicorn[standard]>=0.14.0
  Using cached uvicorn-0.14.0-py3-none-any.whl (50 kB)
Collecting uvloop
  Using cached uvloop-0.15.3-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (4.7 MB)
Collecting websockets
  Using cached websockets-9.1-cp38-cp38-manylinux2010_x86_64.whl (102 kB)
Requirement already satisfied, skipping upgrade: six>=1.5.2 in ./venv/lib/python3.8/site-packages (from grpcio>=1.33.1->jina[standard]) (1.16.0)
Collecting chardet<5.0,>=2.0
  Using cached chardet-4.0.0-py2.py3-none-any.whl (178 kB)
Collecting yarl<2.0,>=1.0
  Using cached yarl-1.6.3-cp38-cp38-manylinux2014_x86_64.whl (324 kB)
Collecting async-timeout<4.0,>=3.0
  Using cached async_timeout-3.0.1-py3-none-any.whl (8.2 kB)
Collecting typing-extensions>=3.6.5
  Using cached typing_extensions-3.10.0.0-py3-none-any.whl (26 kB)
Collecting multidict<7.0,>=4.5
  Using cached multidict-5.1.0-cp38-cp38-manylinux2014_x86_64.whl (159 kB)
Collecting attrs>=17.3.0
  Using cached attrs-21.2.0-py2.py3-none-any.whl (53 kB)
Collecting cffi>=1.12
  Using cached cffi-1.14.6-cp38-cp38-manylinux1_x86_64.whl (411 kB)
Collecting websocket-client>=0.32.0
  Using cached websocket_client-1.1.0-py2.py3-none-any.whl (68 kB)
Collecting starlette==0.14.2
  Using cached starlette-0.14.2-py3-none-any.whl (60 kB)
Collecting charset-normalizer~=2.0.0; python_version >= "3"
  Using cached charset_normalizer-2.0.4-py3-none-any.whl (36 kB)
Collecting idna<4,>=2.5; python_version >= "3"
  Using cached idna-3.2-py3-none-any.whl (59 kB)
Collecting certifi>=2017.4.17
  Using cached certifi-2021.5.30-py2.py3-none-any.whl (145 kB)
Collecting urllib3<1.27,>=1.21.1
  Using cached urllib3-1.26.6-py2.py3-none-any.whl (138 kB)
Collecting commonmark<0.10.0,>=0.9.0
  Using cached commonmark-0.9.1-py2.py3-none-any.whl (51 kB)
Collecting colorama<0.5.0,>=0.4.0
  Using cached colorama-0.4.4-py2.py3-none-any.whl (16 kB)
Collecting pygments<3.0.0,>=2.6.0
  Using cached Pygments-2.9.0-py3-none-any.whl (1.0 MB)
Collecting click>=7.*
  Using cached click-8.0.1-py3-none-any.whl (97 kB)
Collecting asgiref>=3.3.4
  Using cached asgiref-3.4.1-py3-none-any.whl (25 kB)
Collecting h11>=0.8
  Using cached h11-0.12.0-py3-none-any.whl (54 kB)
Collecting python-dotenv>=0.13; extra == "standard"
  Using cached python_dotenv-0.19.0-py2.py3-none-any.whl (17 kB)
Collecting watchgod>=0.6; extra == "standard"
  Using cached watchgod-0.7-py3-none-any.whl (11 kB)
Collecting httptools==0.2.*; extra == "standard"
  Using cached httptools-0.2.0-cp38-cp38-manylinux1_x86_64.whl (354 kB)
Collecting pycparser
  Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB)
Building wheels for collected packages: aiostream, python-multipart
  Building wheel for aiostream (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/saif/MLH/testing/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-73z1kr__/aiostream/setup.py'"'"'; __file__='"'"'/tmp/pip-install-73z1kr__/aiostream/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-rg47udf_
       cwd: /tmp/pip-install-73z1kr__/aiostream/
  Complete output (6 lines):
  usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: setup.py --help [cmd1 cmd2 ...]
     or: setup.py --help-commands
     or: setup.py cmd --help

  error: invalid command 'bdist_wheel'
  ----------------------------------------
  ERROR: Failed building wheel for aiostream
  Running setup.py clean for aiostream
  Building wheel for python-multipart (setup.py) ... error
  ERROR: Command errored out with exit status 1:
   command: /home/saif/MLH/testing/venv/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-73z1kr__/python-multipart/setup.py'"'"'; __file__='"'"'/tmp/pip-install-73z1kr__/python-multipart/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /tmp/pip-wheel-20jipihc
       cwd: /tmp/pip-install-73z1kr__/python-multipart/
  Complete output (6 lines):
  usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: setup.py --help [cmd1 cmd2 ...]
     or: setup.py --help-commands
     or: setup.py cmd --help

  error: invalid command 'bdist_wheel'
  ----------------------------------------
  ERROR: Failed building wheel for python-multipart
  Running setup.py clean for python-multipart
Failed to build aiostream python-multipart
Installing collected packages: aiofiles, chardet, multidict, idna, yarl, async-timeout, typing-extensions, attrs, aiohttp, aiostream, pycparser, cffi, cryptography, charset-normalizer, certifi, urllib3, requests, websocket-client, docker, pydantic, starlette, fastapi, filelock, lz4, pathspec, python-multipart, commonmark, colorama, pygments, rich, click, asgiref, h11, python-dotenv, watchgod, httptools, websockets, uvloop, uvicorn
    Running setup.py install for aiostream ... done
    Running setup.py install for python-multipart ... done
Successfully installed aiofiles-0.7.0 aiohttp-3.7.4.post0 aiostream-0.4.3 asgiref-3.4.1 async-timeout-3.0.1 attrs-21.2.0 certifi-2021.5.30 cffi-1.14.6 chardet-4.0.0 charset-normalizer-2.0.4 click-8.0.1 colorama-0.4.4 commonmark-0.9.1 cryptography-3.4.7 docker-5.0.0 fastapi-0.68.0 filelock-3.0.12 h11-0.12.0 httptools-0.2.0 idna-3.2 lz4-3.1.1 multidict-5.1.0 pathspec-0.9.0 pycparser-2.20 pydantic-1.8.2 pygments-2.9.0 python-dotenv-0.19.0 python-multipart-0.0.5 requests-2.26.0 rich-10.6.0 starlette-0.14.2 typing-extensions-3.10.0.0 urllib3-1.26.6 uvicorn-0.14.0 uvloop-0.15.3 watchgod-0.7 websocket-client-1.1.0 websockets-9.1 yarl-1.6.3

Describe how you solve it

Reading the logs gave me the idea to look around for why bdist_wheel was missing, and I came across this stackoverflow post. In response, I ran pip install wheel, and then I ran pip install -U "jina[standard]" again,

Requirement already up-to-date: jina[standard] in ./venv/lib/python3.8/site-packages (2.0.15)
Requirement already satisfied, skipping upgrade: grpcio>=1.33.1 in ./venv/lib/python3.8/site-packages (from jina[standard]) (1.39.0)
Requirement already satisfied, skipping upgrade: numpy in ./venv/lib/python3.8/site-packages (from jina[standard]) (1.21.1)
Requirement already satisfied, skipping upgrade: protobuf>=3.13.0 in ./venv/lib/python3.8/site-packages (from jina[standard]) (3.17.3)
Requirement already satisfied, skipping upgrade: pyyaml>=5.3.1 in ./venv/lib/python3.8/site-packages (from jina[standard]) (5.4.1)
Requirement already satisfied, skipping upgrade: pyzmq>=17.1.0 in ./venv/lib/python3.8/site-packages (from jina[standard]) (22.1.0)
Requirement already satisfied, skipping upgrade: tornado>=5.1.0 in ./venv/lib/python3.8/site-packages (from jina[standard]) (6.1)
Requirement already satisfied, skipping upgrade: aiofiles in ./venv/lib/python3.8/site-packages (from jina[standard]) (0.7.0)
Requirement already satisfied, skipping upgrade: aiohttp in ./venv/lib/python3.8/site-packages (from jina[standard]) (3.7.4.post0)
Requirement already satisfied, skipping upgrade: aiostream in ./venv/lib/python3.8/site-packages (from jina[standard]) (0.4.3)
Requirement already satisfied, skipping upgrade: cryptography in ./venv/lib/python3.8/site-packages (from jina[standard]) (3.4.7)
Requirement already satisfied, skipping upgrade: docker in ./venv/lib/python3.8/site-packages (from jina[standard]) (5.0.0)
Requirement already satisfied, skipping upgrade: fastapi in ./venv/lib/python3.8/site-packages (from jina[standard]) (0.68.0)
Requirement already satisfied, skipping upgrade: filelock in ./venv/lib/python3.8/site-packages (from jina[standard]) (3.0.12)
Requirement already satisfied, skipping upgrade: lz4<3.1.2 in ./venv/lib/python3.8/site-packages (from jina[standard]) (3.1.1)
Requirement already satisfied, skipping upgrade: pathspec in ./venv/lib/python3.8/site-packages (from jina[standard]) (0.9.0)
Requirement already satisfied, skipping upgrade: pydantic in ./venv/lib/python3.8/site-packages (from jina[standard]) (1.8.2)
Requirement already satisfied, skipping upgrade: python-multipart in ./venv/lib/python3.8/site-packages (from jina[standard]) (0.0.5)
Requirement already satisfied, skipping upgrade: requests in ./venv/lib/python3.8/site-packages (from jina[standard]) (2.26.0)
Requirement already satisfied, skipping upgrade: rich in ./venv/lib/python3.8/site-packages (from jina[standard]) (10.6.0)
Requirement already satisfied, skipping upgrade: uvicorn[standard]>=0.14.0 in ./venv/lib/python3.8/site-packages (from jina[standard]) (0.14.0)
Requirement already satisfied, skipping upgrade: uvloop in ./venv/lib/python3.8/site-packages (from jina[standard]) (0.15.3)
Requirement already satisfied, skipping upgrade: websockets in ./venv/lib/python3.8/site-packages (from jina[standard]) (9.1)
Requirement already satisfied, skipping upgrade: six>=1.5.2 in ./venv/lib/python3.8/site-packages (from grpcio>=1.33.1->jina[standard]) (1.16.0)
Requirement already satisfied, skipping upgrade: multidict<7.0,>=4.5 in ./venv/lib/python3.8/site-packages (from aiohttp->jina[standard]) (5.1.0)
Requirement already satisfied, skipping upgrade: typing-extensions>=3.6.5 in ./venv/lib/python3.8/site-packages (from aiohttp->jina[standard]) (3.10.0.0)
Requirement already satisfied, skipping upgrade: yarl<2.0,>=1.0 in ./venv/lib/python3.8/site-packages (from aiohttp->jina[standard]) (1.6.3)
Requirement already satisfied, skipping upgrade: attrs>=17.3.0 in ./venv/lib/python3.8/site-packages (from aiohttp->jina[standard]) (21.2.0)
Requirement already satisfied, skipping upgrade: async-timeout<4.0,>=3.0 in ./venv/lib/python3.8/site-packages (from aiohttp->jina[standard]) (3.0.1)
Requirement already satisfied, skipping upgrade: chardet<5.0,>=2.0 in ./venv/lib/python3.8/site-packages (from aiohttp->jina[standard]) (4.0.0)
Requirement already satisfied, skipping upgrade: cffi>=1.12 in ./venv/lib/python3.8/site-packages (from cryptography->jina[standard]) (1.14.6)
Requirement already satisfied, skipping upgrade: websocket-client>=0.32.0 in ./venv/lib/python3.8/site-packages (from docker->jina[standard]) (1.1.0)
Requirement already satisfied, skipping upgrade: starlette==0.14.2 in ./venv/lib/python3.8/site-packages (from fastapi->jina[standard]) (0.14.2)
Requirement already satisfied, skipping upgrade: charset-normalizer~=2.0.0; python_version >= "3" in ./venv/lib/python3.8/site-packages (from requests->jina[standard]) (2.0.4)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in ./venv/lib/python3.8/site-packages (from requests->jina[standard]) (2021.5.30)
Requirement already satisfied, skipping upgrade: urllib3<1.27,>=1.21.1 in ./venv/lib/python3.8/site-packages (from requests->jina[standard]) (1.26.6)
Requirement already satisfied, skipping upgrade: idna<4,>=2.5; python_version >= "3" in ./venv/lib/python3.8/site-packages (from requests->jina[standard]) (3.2)
Requirement already satisfied, skipping upgrade: commonmark<0.10.0,>=0.9.0 in ./venv/lib/python3.8/site-packages (from rich->jina[standard]) (0.9.1)
Requirement already satisfied, skipping upgrade: colorama<0.5.0,>=0.4.0 in ./venv/lib/python3.8/site-packages (from rich->jina[standard]) (0.4.4)
Requirement already satisfied, skipping upgrade: pygments<3.0.0,>=2.6.0 in ./venv/lib/python3.8/site-packages (from rich->jina[standard]) (2.9.0)
Requirement already satisfied, skipping upgrade: h11>=0.8 in ./venv/lib/python3.8/site-packages (from uvicorn[standard]>=0.14.0->jina[standard]) (0.12.0)
Requirement already satisfied, skipping upgrade: asgiref>=3.3.4 in ./venv/lib/python3.8/site-packages (from uvicorn[standard]>=0.14.0->jina[standard]) (3.4.1)
Requirement already satisfied, skipping upgrade: click>=7.* in ./venv/lib/python3.8/site-packages (from uvicorn[standard]>=0.14.0->jina[standard]) (8.0.1)
Requirement already satisfied, skipping upgrade: watchgod>=0.6; extra == "standard" in ./venv/lib/python3.8/site-packages (from uvicorn[standard]>=0.14.0->jina[standard]) (0.7)
Requirement already satisfied, skipping upgrade: httptools==0.2.*; extra == "standard" in ./venv/lib/python3.8/site-packages (from uvicorn[standard]>=0.14.0->jina[standard]) (0.2.0)
Requirement already satisfied, skipping upgrade: python-dotenv>=0.13; extra == "standard" in ./venv/lib/python3.8/site-packages (from uvicorn[standard]>=0.14.0->jina[standard]) (0.19.0)
Requirement already satisfied, skipping upgrade: pycparser in ./venv/lib/python3.8/site-packages (from cffi>=1.12->cryptography->jina[standard]) (2.20)

No errors thrown, I guess it was missing the dependency of wheel? I'm not sure about this.

Environment

$ jina --version-ful
- jina 2.0.15
- jina-proto 0.0.85
- jina-vcs-tag (unset)
- libzmq 4.3.4
- pyzmq 1.21.1
- protobuf 3.17.3
- proto-backend cpp
- grpcio 1.39.0
- pyyaml 5.4.1
- python 3.8.10
- platform Linux
- platform-release 5.4.0-77-generic
- platform-version #86-Ubuntu SMP Thu Jun 17 02:35:03 UTC 2021
- architecture x86_64
- processor x86_64
- uid 48234950792350
- session-id 9831f203-f38d-11eb-b7c5-2bde931b949e
- uptime 2021-08-02T17:31:43.217401
- ci-vendor (unset)
* JINA_ARRAY_QUANT (unset)
* JINA_CONTROL_PORT (unset)
* JINA_DEFAULT_HOST (unset)
* JINA_DISABLE_UVLOOP (unset)
* JINA_FULL_CLI (unset)
* JINA_HUBBLE_REGISTRY (unset)
* JINA_HUB_CACHE_DIR (unset)
* JINA_HUB_ROOT (unset)
* JINA_LOG_CONFIG (unset)
* JINA_LOG_ID (unset)
* JINA_LOG_LEVEL (unset)
* JINA_LOG_NO_COLOR (unset)
* JINA_LOG_WORKSPACE (unset)
* JINA_OPTIMIZER_TRIAL_WORKSPACE(unset)
* JINA_POD_NAME (unset)
* JINA_RANDOM_PORT_MAX (unset)
* JINA_RANDOM_PORT_MIN (unset)
* JINA_VCS_VERSION (unset)
* JINA_MP_START_METHOD (unset)

$ pip --version
pip 20.0.2 from /home/saif/MLH/testing/venv/lib/python3.8/site-packages/pip (python 3.8)

$ python --version
Python 3.8.10

This is reproducible by creating a virtualenv by running the following steps,

$ python3 -m venv venv
$ source venv/bin/activate
$ pip install -U "jina[standard]"

Screenshots

Not really applicable.

bwanglzu commented 3 years ago

i'm on mac os and i don't have the same error.

Rubix982 commented 3 years ago

And now it works ... this was weird. Closing.