1

I'm running Linux Mint 19.1 with Python 3.7.3 and am trying to install the qutip package. I've got the following installed so the dependencies should be fulfilled:

NumPy-1.16.4
SciPy-1.3.0
Maplotlib-3.1.0
Cython-0.29.10
GCC-8.0.1

I am not sure about the Python Header dependency but I ran

sudo apt-get install python3.7-dev

without errors as it was the only thing I could find when googling it. When I try to install qutip using pip I get error: invalid command 'bdist_wheel' twice, Failed building wheel for py-postgresql and Failed to build qubit py-postgresql after which it says the install was successful, see full print fro terminal:

$ python3.7 -m pip install qubit
Collecting qubit
  Using cached https://files.pythonhosted.org/packages/7e/fb/b9f75dba12698a1c394d9732d6d05008cc8a4d1d4854fc7201792e908626/qubit-0.0.1.tar.gz
Collecting Flask==0.11.1 (from qubit)
  Using cached https://files.pythonhosted.org/packages/63/2b/01f5ed23a78391f6e3e73075973da0ecb467c831376a0b09c0ec5afd7977/Flask-0.11.1-py2.py3-none-any.whl
Collecting py-postgresql==1.1.0 (from qubit)
  Using cached https://files.pythonhosted.org/packages/4c/cf/43d0287866f30f8b6f10ece19568fcda5477346c0f63bf5e9fb5c5eef121/py-postgresql-1.1.0.zip
Collecting pytest==3.0.3 (from qubit)
  Using cached https://files.pythonhosted.org/packages/a4/e9/bf75a9a91c4a545bad262937d1defa90d95ac912118a706406e21aef889a/pytest-3.0.3-py2.py3-none-any.whl
Collecting click>=2.0 (from Flask==0.11.1->qubit)
  Using cached https://files.pythonhosted.org/packages/fa/37/45185cb5abbc30d7257104c434fe0b07e5a195a6847506c074527aa599ec/Click-7.0-py2.py3-none-any.whl
Collecting Jinja2>=2.4 (from Flask==0.11.1->qubit)
  Using cached https://files.pythonhosted.org/packages/1d/e7/fd8b501e7a6dfe492a433deb7b9d833d39ca74916fa8bc63dd1a4947a671/Jinja2-2.10.1-py2.py3-none-any.whl
Collecting Werkzeug>=0.7 (from Flask==0.11.1->qubit)
  Using cached https://files.pythonhosted.org/packages/9f/57/92a497e38161ce40606c27a86759c6b92dd34fcdb33f64171ec559257c02/Werkzeug-0.15.4-py2.py3-none-any.whl
Collecting itsdangerous>=0.21 (from Flask==0.11.1->qubit)
  Using cached https://files.pythonhosted.org/packages/76/ae/44b03b253d6fade317f32c24d100b3b35c2239807046a4c953c7b89fa49e/itsdangerous-1.1.0-py2.py3-none-any.whl
Collecting py>=1.4.29 (from pytest==3.0.3->qubit)
  Using cached https://files.pythonhosted.org/packages/76/bc/394ad449851729244a97857ee14d7cba61ddb268dce3db538ba2f2ba1f0f/py-1.8.0-py2.py3-none-any.whl
Collecting MarkupSafe>=0.23 (from Jinja2>=2.4->Flask==0.11.1->qubit)
  Using cached https://files.pythonhosted.org/packages/98/7b/ff284bd8c80654e471b769062a9b43cc5d03e7a615048d96f4619df8d420/MarkupSafe-1.1.1-cp37-cp37m-manylinux1_x86_64.whl
Building wheels for collected packages: qubit, py-postgresql
  Running setup.py bdist_wheel for qubit ... error
  Complete output from command /usr/bin/python3.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-bohuey6f/qubit/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/tmpy8xqxz6ipip-wheel- --python-tag cp37:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for qubit
  Running setup.py clean for qubit
  Running setup.py bdist_wheel for py-postgresql ... error
  Complete output from command /usr/bin/python3.7 -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-bohuey6f/py-postgresql/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/tmpl3nlfezopip-wheel- --python-tag cp37:
  usage: -c [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
     or: -c --help [cmd1 cmd2 ...]
     or: -c --help-commands
     or: -c cmd --help

  error: invalid command 'bdist_wheel'

  ----------------------------------------
  Failed building wheel for py-postgresql
  Running setup.py clean for py-postgresql
Failed to build qubit py-postgresql
Installing collected packages: click, MarkupSafe, Jinja2, Werkzeug, itsdangerous, Flask, py-postgresql, py, pytest, qubit
  Running setup.py install for py-postgresql ... done
  Running setup.py install for qubit ... done
Successfully installed Flask-0.11.1 Jinja2-2.10.1 MarkupSafe-1.1.1 Werkzeug-0.15.4 click-7.0 itsdangerous-1.1.0 py-1.8.0 py-postgresql-1.1.0 pytest-3.0.3 qubit-0.0.1
In ~/.local/lib/python3.7/site-packages

I can then see two directories called qutip and qutip-4.3.1-py3.7.egg-info in ~/.local/lib/python3.7/site-packages but if I run python3.7 and try to import qutip an ImportError for something called IndexMixin, a ModuleNotFoundError for apt_pkg, see full printout.

$ python3.7
Python 3.7.3 (default, Apr  3 2019, 19:16:38) 
[GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import qutip
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/kajsa/.local/lib/python3.7/site-packages/qutip/__init__.py", line 171, in <module>
    from qutip.qobj import *
  File "/home/kajsa/.local/lib/python3.7/site-packages/qutip/qobj.py", line 60, in <module>
    from qutip.fastsparse import fast_csr_matrix, fast_identity
  File "/home/kajsa/.local/lib/python3.7/site-packages/qutip/fastsparse.py", line 37, in <module>
    from scipy.sparse.sputils import (upcast, upcast_char, to_native, isdense, isshape,
ImportError: cannot import name 'IndexMixin' from 'scipy.sparse.sputils' (/home/kajsa/.local/lib/python3.7/site-packages/scipy/sparse/sputils.py)
Error in sys.excepthook:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
    from apport.fileutils import likely_packaged, get_recent_crashes
  File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
    from apport.report import Report
  File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
    import apport.fileutils
  File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
    from apport.packaging_impl import impl as packaging
  File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
    import apt
  File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
    import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'

Original exception was:
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/kajsa/.local/lib/python3.7/site-packages/qutip/__init__.py", line 171, in <module>
    from qutip.qobj import *
  File "/home/kajsa/.local/lib/python3.7/site-packages/qutip/qobj.py", line 60, in <module>
    from qutip.fastsparse import fast_csr_matrix, fast_identity
  File "/home/kajsa/.local/lib/python3.7/site-packages/qutip/fastsparse.py", line 37, in <module>
    from scipy.sparse.sputils import (upcast, upcast_char, to_native, isdense, isshape,
ImportError: cannot import name 'IndexMixin' from 'scipy.sparse.sputils' (/home/kajsa/.local/lib/python3.7/site-packages/scipy/sparse/sputils.py)
>>> 

Any ideas what could be causing this?

1

you may need to install/reinstall wheel pip package, or see this thread: https://stackoverflow.com/questions/34819221/why-is-python-setup-py-saying-invalid-command-bdist-wheel-on-travis-ci

  • 1
    Thank you, that solved the install issue with the bdist_wheel. However the errors when trying to import qutip are still there. – Kajsa Jun 25 at 13:07
  • reinstall qutip maybe? with pip install --upgrade --force-reinstall <package>. or pip install --ignore-installed <package> to ignore the installed packages (reinstalling instead). remember to specify python3.7 pip, as it may be using pip for default Os python. – Bart Jun 25 at 13:11
  • 1
    as well as have a look at stackoverflow.com/questions/13708180/… – Bart Jun 25 at 15:05
  • 1
    @Kajsa, you may have to install a lower/higher version of python package scipy to solve the issue, the world wide web is full of similar issues described. – Bart Jun 25 at 15:15
  • 1
    Thank you so much. It imports now so it should be working. – Kajsa Jun 26 at 7:39
1

Thanks to @Bart I have managed to solve all the error codes. This is how I did it.

The install errors error: invalid command 'bdist_wheel', Failed building wheel for py-postgresql and Failed to build qubit py-postgresql were all solved by installing wheel, according to this post. In short I just ran

python3.7 -m pip install wheel
python3.7 -m pip install --upgrade --force-reinstall qutip

The issue ImportError: cannot import name 'IndexMixin' from 'scipy.sparse.sputils' (/home/kajsa/.local/lib/python3.7/site-packages/scipy/sparse/sputils.py) is due to changes in the scipy package in the latest version. According to this discussion it is not just a move but a change to the package so I had to install an older version of scipy. This was done by running these commands.

python3.7 -m pip uninstall scipy
python3.7 -m pip install scipy<1.3.0

Finally, ModuleNotFoundError: No module named 'apt_pkg' was solved by following this answer, and comments. By running

sudo apt-get install --reinstall python3-apt
cd /usr/lib/python3/dist-packages
sudo ln -s apt_pkg.cpython-{36m,37m}-x86_64-linux-gnu.so

Note: If you find that you get an error like

ERROR: Could not install packages due to an EnvironmentError: [Errno 13] Permission denied: 'RECORD'
Consider using the `--user` option or check the permissions.

You can solve it either, I assume, by adding the --user flag or, as I did, by running it as root with sudo -H, e.g.

sudo -H python3.7 -m pip install 'scipy<1.3.0'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.