Created a virtual environment using the default Python 3.7 and updated pip to current (essential--see #26).
Installed bifs 0.9.1 and
(testEnv) ross@barley:~/UCSF/Kornak$ bifs_gui
Matplotlib is building the font cache; this may take a moment.
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl, xcb.
Aborted
The most likely reason is that PyQt5 conflicts with the version of Qt on the system, which is running KDE (which is Qt based). The system libqt5 is 5.11.3 while the downloaded PyQt5 is at 5.15.2.
Another possibility is that the nvidia proprietary drivers I'm using are causing trouble.
Another is that the setup of the linux pyqt5 wheel is messed up, at least for Debian. Or that I need to configure the platform plugin in some way.
A possible work-around would be to install the required packages via the standard Debian packaging tools and then avoid the use of a venv, since a venv causes the system packages to be ignored.
Note that Debian 10, aka buster, is old as of a month ago. Current stable is Debian 11, aka bullseye, which seems to be using Qt 5.15.2, i.e., same as the downloaded PyQt5.
If the mismatch of Qt versions is behind this, the question of how to assure compatibility remains. For example, even though bullseye and PyQt5 are at the same version right now, that is not likely to persist (nor does it help people on other versions of Debian or other OS's). The version on Debian will not change during bullseye's likely several year lifetime.
Fuller transcript
ross@barley:~/UCSF/Kornak$ python --version
Python 2.7.16
ross@barley:~/UCSF/Kornak$ python3 --version
Python 3.7.3
ross@barley:~/UCSF/Kornak$ python3 -m venv testEnv
ross@barley:~/UCSF/Kornak$ ls testEnv/bin/
activate activate.fish easy_install-3.7 pip3 python
activate.csh easy_install pip pip3.7 python3
ross@barley:~/UCSF/Kornak$ echo $PATH
/home/ross/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
ross@barley:~/UCSF/Kornak$ source testEnv/bin/activate
(testEnv) ross@barley:~/UCSF/Kornak$ echo $PATH
/home/ross/UCSF/Kornak/testEnv/bin:/home/ross/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
(testEnv) ross@barley:~/UCSF/Kornak$ python --version
Python 3.7.3
(testEnv) ross@barley:~/UCSF/Kornak$ date; time python -m pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/ bifs
Tue 21 Sep 2021 09:07:26 PM PDT
Looking in indexes: https://test.pypi.org/simple/, https://pypi.org/simple/
Collecting bifs
Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/bifs/
real 0m2.435s
user 0m0.677s
sys 0m0.024s
# various other attempts omited
(testEnv) ross@barley:~/UCSF/Kornak$ date; time python -m pip install --index-url https://test.pypi.org/simple/ bifs
Tue 21 Sep 2021 09:12:27 PM PDT
Looking in indexes: https://test.pypi.org/simple/
Collecting bifs
Downloading https://test-files.pythonhosted.org/packages/90/cf/0d2148966c28ca066ce34d7f96d9200acc2a19958e93ec5944acdab9c4e9/bifs-0.9.1-py3-none-any.whl
Collecting nibabel (from bifs)
Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://test.pypi.org/simple/nibabel/
real 0m1.606s
user 0m0.667s
sys 0m0.064s
(testEnv) ross@barley:~/UCSF/Kornak$ date; time python -m pip install --index-url https://test.pypi.org/simple --extra-index-url https://pypi.org/simple bifs
Tue 21 Sep 2021 09:12:46 PM PDT
Looking in indexes: https://test.pypi.org/simple, https://pypi.org/simple
Collecting bifs
Could not install packages due to an EnvironmentError: 404 Client Error: Not Found for url: https://pypi.org/simple/bifs/
real 0m2.096s
user 0m0.630s
sys 0m0.072s
(testEnv) ross@barley:~/UCSF/Kornak$ python -m pip install --upgrade pip
Collecting pip
Downloading https://files.pythonhosted.org/packages/ca/31/b88ef447d595963c01060998cb329251648acf4a067721b0452c45527eb8/pip-21.2.4-py3-none-any.whl (1.6MB)
100% |████████████████████████████████| 1.6MB 514kB/s
Installing collected packages: pip
Found existing installation: pip 18.1
Uninstalling pip-18.1:
Successfully uninstalled pip-18.1
Successfully installed pip-21.2.4
(testEnv) ross@barley:~/UCSF/Kornak$ date; time python -m pip install --index-url https://test.pypi.org/simple --extra-index-url https://pypi.org/simple bifs
Tue 21 Sep 2021 09:20:38 PM PDT
Looking in indexes: https://test.pypi.org/simple, https://pypi.org/simple
Collecting bifs
Downloading https://test-files.pythonhosted.org/packages/90/cf/0d2148966c28ca066ce34d7f96d9200acc2a19958e93ec5944acdab9c4e9/bifs-0.9.1-py3-none-any.whl (38 kB)
Collecting matplotlib
Downloading matplotlib-3.4.3-cp37-cp37m-manylinux1_x86_64.whl (10.3 MB)
|████████████████████████████████| 10.3 MB 767 kB/s
Collecting scipy
Downloading scipy-1.7.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (28.5 MB)
|████████████████████████████████| 28.5 MB 774 kB/s
Collecting jsonpickle
Downloading jsonpickle-2.0.0-py2.py3-none-any.whl (37 kB)
Collecting numpy>=1.17
Downloading numpy-1.21.2-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (15.7 MB)
|████████████████████████████████| 15.7 MB 315 kB/s
Collecting PyQt5
Downloading PyQt5-5.15.4-cp36.cp37.cp38.cp39-abi3-manylinux2014_x86_64.whl (8.3 MB)
|████████████████████████████████| 8.3 MB 657 kB/s
Collecting imageio
Downloading imageio-2.9.0-py3-none-any.whl (3.3 MB)
|████████████████████████████████| 3.3 MB 734 kB/s
Collecting nibabel
Downloading nibabel-3.2.1-py3-none-any.whl (3.3 MB)
|████████████████████████████████| 3.3 MB 764 kB/s
Collecting pillow
Downloading Pillow-8.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.0 MB)
|████████████████████████████████| 3.0 MB 533 kB/s
Collecting importlib-metadata
Downloading importlib_metadata-4.8.1-py3-none-any.whl (17 kB)
Collecting zipp>=0.5
Downloading zipp-3.5.0-py3-none-any.whl (5.7 kB)
Collecting typing-extensions>=3.6.4
Downloading typing_extensions-3.10.0.2-py3-none-any.whl (26 kB)
Collecting pyparsing>=2.2.1
Using cached pyparsing-2.4.7-py2.py3-none-any.whl (67 kB)
Collecting cycler>=0.10
Using cached cycler-0.10.0-py2.py3-none-any.whl (6.5 kB)
Collecting python-dateutil>=2.7
Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
|████████████████████████████████| 247 kB 659 kB/s
Collecting kiwisolver>=1.0.1
Downloading kiwisolver-1.3.2-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl (1.1 MB)
|████████████████████████████████| 1.1 MB 462 kB/s
Collecting six
Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting packaging>=14.3
Downloading packaging-21.0-py3-none-any.whl (40 kB)
|████████████████████████████████| 40 kB 574 kB/s
Collecting PyQt5-sip<13,>=12.8
Downloading PyQt5_sip-12.9.0-cp37-cp37m-manylinux1_x86_64.whl (317 kB)
|████████████████████████████████| 317 kB 690 kB/s
Collecting PyQt5-Qt5>=5.15
Downloading PyQt5_Qt5-5.15.2-py3-none-manylinux2014_x86_64.whl (59.9 MB)
|████████████████████████████████| 59.9 MB 777 kB/s
Installing collected packages: zipp, typing-extensions, six, pyparsing, python-dateutil, PyQt5-sip, PyQt5-Qt5, pillow, packaging, numpy, kiwisolver, importlib-metadata, cycler, scipy, PyQt5, nibabel, matplotlib, jsonpickle, imageio, bifs
Successfully installed PyQt5-5.15.4 PyQt5-Qt5-5.15.2 PyQt5-sip-12.9.0 bifs-0.9.1 cycler-0.10.0 imageio-2.9.0 importlib-metadata-4.8.1 jsonpickle-2.0.0 kiwisolver-1.3.2 matplotlib-3.4.3 nibabel-3.2.1 numpy-1.21.2 packaging-21.0 pillow-8.3.2 pyparsing-2.4.7 python-dateutil-2.8.2 scipy-1.7.1 six-1.16.0 typing-extensions-3.10.0.2 zipp-3.5.0
real 3m40.054s
user 0m13.585s
sys 0m3.282s
(testEnv) ross@barley:~/UCSF/Kornak$ du -sh testEnv/
501M testEnv/
Created a virtual environment using the default Python 3.7 and updated pip to current (essential--see #26).
Installed bifs 0.9.1 and
The most likely reason is that PyQt5 conflicts with the version of Qt on the system, which is running KDE (which is Qt based). The system libqt5 is 5.11.3 while the downloaded PyQt5 is at 5.15.2.
Another possibility is that the nvidia proprietary drivers I'm using are causing trouble.
Another is that the setup of the linux pyqt5 wheel is messed up, at least for Debian. Or that I need to configure the platform plugin in some way.
A possible work-around would be to install the required packages via the standard Debian packaging tools and then avoid the use of a venv, since a venv causes the system packages to be ignored.
Note that Debian 10, aka buster, is old as of a month ago. Current stable is Debian 11, aka bullseye, which seems to be using Qt 5.15.2, i.e., same as the downloaded PyQt5.
If the mismatch of Qt versions is behind this, the question of how to assure compatibility remains. For example, even though bullseye and PyQt5 are at the same version right now, that is not likely to persist (nor does it help people on other versions of Debian or other OS's). The version on Debian will not change during bullseye's likely several year lifetime.
Fuller transcript