janclemenslab / das

Deep Audio Segmenter
http://janclemenslab.org/das/
Apache License 2.0
28 stars 10 forks source link

Could not import the GUI after fresh install #13

Closed nickjourjine closed 3 years ago

nickjourjine commented 3 years ago

Hello,

I recently installed das following the instructions here: https://janclemenslab.org/das/installation.html (ie, pasting conda env create ncb/das-env -n das into the terminal app and running it from my base environment).

The installation proceeds without errors, but when I then activate the environment with conda activate das and run the command das gui to open the GUI I get the following:

/Applications/anaconda3/envs/das/lib/python3.8/site-packages/pyqtgraph/debug.py:21: 
UserWarning: Due to PYSIDE-1140, ThreadChase and ThreadColor won't work. 
Could not import the GUI.
For instructions on how to install the GUI,
check the docs janclemenslab.org/das/install.html.

Running other commands gives the same warning, although they appear to work (see example below for the output of das version)

Things I have tried that did not fix the problem:

Running das version gives:

/Applications/anaconda3/envs/das/lib/python3.8/site-packages/pyqtgraph/debug.py:21: UserWarning: Due to PYSIDE-1140, ThreadChase and ThreadColor won't work
  warnings.warn("Due to PYSIDE-1140, ThreadChase and ThreadColor won't work")
The following versions are available to DAS:
  DAS v0.22.4
     GUI is NOT AVAILABLE

  tensorflow v2.4.3
  keras v2.4.0
     GPU is NOT AVAILABLE

  python v3.8.12 (default, Oct 12 2021, 06:23:56) 
[Clang 10.0.0 ]
  pandas v1.3.3
  numpy v1.21.2
  h5py v2.10.0
  scipy v1.7.1
  scikit-learn v1.0.1

Note that under the current version of DAS it says "GUI is not available". Any help fixing this would be greatly appreciated - apologies if I'm missing an obvious solution!

postpop commented 3 years ago

Hi Nick,

thanks for raising the issue - I had encountered this problem before but thought it was solved. Packaging the GUI reliably with DAS has always been a hassle.

I created a fresh DAS env again - I get the warning but it still works on my mac (I think you are also on a mac, correct?). Can you post the output of conda list? I'd like to know which version of pyside2 gets installed for you (I get v5.13.2)

We also have an experimental conda package. Maybe that one solves the issue for you. You can create a fresh environment containing the conda package with this command:

conda create -n das_conda -y 
conda activate das_conda
conda install das -c ncb -c conda-forge -y
nickjourjine commented 3 years ago

Hi Jan,

Thanks for the quick response. The full output of conda list is below at the end of the post. The version of pyside2 that gets installed for me is v5.13.2. Yes, I'm also on a mac - sorry for not specifying, I'm still using Mojave 10.14.6 in case that could be the problem.

I created the fresh conda environment using:

conda create -n das_conda -y 
conda activate das_conda
conda install das -c ncb -c conda-forge -y 

That all works without errors, but here's what I get when I run das gui from the new das_conda environment:

(das_conda) [09:11:13] ~ nick_jourjine $ das gui
Could not import the GUI.
For instructions on how to install the GUI,
check the docs janclemenslab.org/das/install.html.

The version of pyside2 installed with the new das_conda environment is also v5.13.2

And here's the full output of conda list from my original das environment that first gave the error when trying to run das gui:

# packages in environment at /Applications/anaconda3/envs/das:
#
# Name                    Version                   Build  Channel
abseil-cpp                20210324.2           h23ab428_0  
absl-py                   0.13.0           py38hecd8cb5_0  
aiohttp                   3.7.4.post0      py38h9ed2024_2  
appdirs                   1.4.4              pyhd3eb1b0_0  
appnope                   0.1.2           py38hecd8cb5_1001  
asciitree                 0.3.3                      py_2  
astunparse                1.6.3                      py_0  
async-timeout             3.0.1            py38hecd8cb5_0  
attrs                     21.2.0             pyhd3eb1b0_0  
audioread                 2.1.9            py38h50d1736_0    conda-forge
backcall                  0.2.0              pyhd3eb1b0_0  
blas                      1.0                         mkl  
blinker                   1.4              py38hecd8cb5_0  
blosc                     1.21.0               h2842e9f_0  
bottleneck                1.3.2            py38hf1fa96c_1  
brotli                    1.0.9                hb1e8313_2  
brotlipy                  0.7.0           py38h9ed2024_1003  
brunsli                   0.1                  h23ab428_0  
bzip2                     1.0.8                h1de35cc_0  
c-ares                    1.18.1               h0d85af4_0    conda-forge
ca-certificates           2021.10.8            h033912b_0    conda-forge
cachetools                4.2.2              pyhd3eb1b0_0  
certifi                   2021.10.8        py38h50d1736_0    conda-forge
cffi                      1.14.6           py38h2125817_0  
cfitsio                   3.470                hee0f690_6  
chardet                   4.0.0           py38hecd8cb5_1003  
charls                    2.2.0                h23ab428_0  
charset-normalizer        2.0.4              pyhd3eb1b0_0  
click                     8.0.3              pyhd3eb1b0_0  
cloudpickle               2.0.0              pyhd3eb1b0_0  
colorama                  0.4.4              pyhd3eb1b0_0  
colorcet                  2.0.6              pyhd3eb1b0_0  
cryptography              3.4.8            py38h2fd3fbb_0  
curl                      7.78.0               h7bc2e8c_0  
cycler                    0.10.0                   py38_0  
cytoolz                   0.11.0           py38haf1e3a3_0  
das                       0.22.4                   pypi_0    pypi
dask-core                 2021.9.1           pyhd3eb1b0_0  
dataclasses               0.8                pyh6d0b6a4_7  
decorator                 5.1.0              pyhd3eb1b0_0  
defopt                    6.1.0            py38h50d1736_0    conda-forge
docutils                  0.17.1           py38hecd8cb5_1  
expat                     2.4.1                h23ab428_2  
fasteners                 0.16.3             pyhd3eb1b0_0  
ffmpeg                    4.2.2                h97e5cf8_0  
flammkuchen               0.9.2                      py_0    conda-forge
fonttools                 4.25.0             pyhd3eb1b0_0  
freetype                  2.11.0               hd8bbffd_0  
fsspec                    2021.8.1           pyhd3eb1b0_0  
future                    0.18.2                   py38_1  
gast                      0.3.3                      py_0  
gettext                   0.21.0               h7535e17_0  
giflib                    5.2.1                haf1e3a3_0  
git                       2.32.0          pl5262h6cd52fe_1  
gmp                       6.2.1                h23ab428_2  
gnutls                    3.6.15               hed9c0bf_0  
google-auth               1.33.0             pyhd3eb1b0_0  
google-auth-oauthlib      0.4.4              pyhd3eb1b0_0  
google-pasta              0.2.0              pyhd3eb1b0_0  
grpc-cpp                  1.37.1               h69eed7d_3    conda-forge
grpcio                    1.37.1           py38ha263829_0    conda-forge
h5py                      2.10.0           py38h0601b69_1  
hdf5                      1.10.6               hdbbcd12_0  
icu                       68.1                 h23ab428_0  
idna                      3.2                pyhd3eb1b0_0  
imagecodecs               2021.8.26        py38ha952a84_0  
imageio                   2.9.0              pyhd3eb1b0_0  
importlib-metadata        4.8.1            py38hecd8cb5_0  
intel-openmp              2021.3.0          hecd8cb5_3375  
ipython                   7.27.0           py38h01d92e1_0  
jedi                      0.18.0           py38hecd8cb5_1  
joblib                    1.1.0              pyhd3eb1b0_0  
jpeg                      9d                   h9ed2024_0  
jxrlib                    1.1                  haf1e3a3_2  
keras-preprocessing       1.1.2              pyhd3eb1b0_0  
keras-tuner               1.0.3              pyhd8ed1ab_0    conda-forge
kiwisolver                1.3.1            py38h23ab428_0  
krb5                      1.19.2               hcd88c3b_0  
kt-legacy                 1.0.4                    pypi_0    pypi
lame                      3.100                h1de35cc_0  
lcms2                     2.12                 hf1fd2bf_0  
lerc                      3.0                  he9d5cce_0  
libaec                    1.0.4                hb1e8313_1  
libclang                  11.1.0          default_he082bbe_1    conda-forge
libcurl                   7.78.0               hb8e4fae_0  
libcxx                    12.0.0               h2f01273_0  
libdeflate                1.8                  h9ed2024_5  
libedit                   3.1.20210714         h9ed2024_0  
libev                     4.33                 h9ed2024_1  
libffi                    3.3                  hb1e8313_2  
libflac                   1.3.3                h046ec9c_1    conda-forge
libgfortran               3.0.1                h93005f0_2  
libiconv                  1.16                 h1de35cc_0  
libidn2                   2.3.2                h9ed2024_0  
libllvm10                 10.0.1               h76017ad_5  
libllvm11                 11.1.0               h9b2ccf5_0  
libnghttp2                1.41.0               h7580e61_2  
libogg                    1.3.5                h9ed2024_1  
libopus                   1.3.1                h1de35cc_0  
libpng                    1.6.37               ha441bb4_0  
libpq                     13.3                 hea3049e_0    conda-forge
libprotobuf               3.15.8               hcf210ce_1    conda-forge
librosa                   0.8.1              pyhd8ed1ab_0    conda-forge
libsndfile                1.0.31               he49afe7_1    conda-forge
libssh2                   1.9.0                ha12b0ac_1  
libtasn1                  4.16.0               h9ed2024_0  
libtiff                   4.2.0                h87d7836_0  
libunistring              0.9.10               h9ed2024_0  
libvorbis                 1.3.7                haf1e3a3_0  
libvpx                    1.7.0                h378b8a2_0  
libwebp                   1.2.0                hacca55c_0  
libwebp-base              1.2.0                h9ed2024_0  
libxml2                   2.9.12               h93ec3fd_0    conda-forge
libxslt                   1.1.33               h5739fc3_2    conda-forge
libzopfli                 1.0.3                hb1e8313_0  
llvm-openmp               12.0.0               h0dcd299_1  
llvmlite                  0.36.0           py38he4411ff_4  
locket                    0.2.1            py38hecd8cb5_1  
lz4-c                     1.9.3                h23ab428_1  
markdown                  3.3.4            py38hecd8cb5_0  
matplotlib                3.4.3            py38hecd8cb5_0  
matplotlib-base           3.4.3            py38h0a11d32_0  
matplotlib-inline         0.1.2              pyhd3eb1b0_2  
matplotlib-scalebar       0.7.2              pyh44b312d_0    conda-forge
mkl                       2021.3.0           hecd8cb5_517  
mkl-service               2.4.0            py38h9ed2024_0  
mkl_fft                   1.3.1            py38h4ab4a9b_0  
mkl_random                1.2.2            py38hb2f4e1b_0  
mock                      4.0.3              pyhd3eb1b0_0  
msgpack-python            1.0.2            py38hf7b0b51_1  
multidict                 5.1.0            py38h9ed2024_2  
munkres                   1.1.4                      py_0  
mysql-common              8.0.25               h694c41f_0    conda-forge
mysql-libs                8.0.25               h54f5a68_0    conda-forge
ncurses                   6.2                  h0a44026_1  
nettle                    3.7.3                h230ac6f_1  
networkx                  2.6.3              pyhd3eb1b0_0  
nspr                      4.32                 hcd9eead_0    conda-forge
nss                       3.69                 h31e2bf1_1    conda-forge
numba                     0.53.0           py38hb2f4e1b_0  
numcodecs                 0.8.0            py38h23ab428_0  
numexpr                   2.7.3            py38h5873af2_1  
numpy                     1.21.2           py38h4b4dc7a_0  
numpy-base                1.21.2           py38he0bd621_0  
oauthlib                  3.1.1              pyhd3eb1b0_0  
olefile                   0.46               pyhd3eb1b0_0  
opencv-python-headless    4.5.3.56                 py38_0    ncb
openh264                  2.1.0                hd9629dc_0  
openjpeg                  2.4.0                h66ea3da_0  
openssl                   1.1.1l               h0d85af4_0    conda-forge
opt_einsum                3.3.0              pyhd3eb1b0_1  
packaging                 21.0               pyhd3eb1b0_0  
pandas                    1.3.3            py38h5008ddb_0  
param                     1.11.1             pyhd3eb1b0_0  
parso                     0.8.2              pyhd3eb1b0_0  
partd                     1.2.0              pyhd3eb1b0_0  
pcre2                     10.35                h1de35cc_1  
peakutils                 1.3.3                      py_0    conda-forge
perl                      5.26.2               h4e221da_0  
pexpect                   4.8.0              pyhd3eb1b0_3  
pickleshare               0.7.5           pyhd3eb1b0_1003  
pillow                    8.4.0            py38h98e4679_0  
pip                       21.2.4           py38hecd8cb5_0  
pockets                   0.9.1                      py_0    conda-forge
pooch                     1.4.0              pyhd3eb1b0_0  
portaudio                 19.6.0               h647c56a_4  
prompt-toolkit            3.0.20             pyhd3eb1b0_0  
protobuf                  3.15.8           py38ha048514_0    conda-forge
ptyprocess                0.7.0              pyhd3eb1b0_2  
pyasn1                    0.4.8              pyhd3eb1b0_0  
pyasn1-modules            0.2.8                      py_0  
pycparser                 2.20                       py_2  
pyct                      0.4.8                    py38_0  
pygments                  2.10.0             pyhd3eb1b0_0  
pyjwt                     2.1.0            py38hecd8cb5_0  
pyopenssl                 21.0.0             pyhd3eb1b0_1  
pyparsing                 2.4.7              pyhd3eb1b0_0  
pyqtgraph                 0.12.3             pyhd8ed1ab_0    conda-forge
pyside2                   5.13.2           py38hc6340e1_4    conda-forge
pysocks                   1.7.1                    py38_1  
pysoundfile               0.9.0.post1              pypi_0    pypi
pytables                  3.6.1            py38hfb086ad_3    conda-forge
python                    3.8.12               h88f2d9e_0  
python-dateutil           2.8.2              pyhd3eb1b0_0  
python-flatbuffers        1.12               pyhd3eb1b0_0  
python-sounddevice        0.4.1              pyh9f0ad1d_0    conda-forge
python_abi                3.8                      2_cp38    conda-forge
pytz                      2021.3             pyhd3eb1b0_0  
pyvideoreader             0.5.3                    py38_0    ncb
pywavelets                1.1.1            py38haf1e3a3_2  
pyyaml                    5.4.1            py38h9ed2024_1  
qt                        5.12.9               h126340a_4    conda-forge
re2                       2021.08.01           he49afe7_0    conda-forge
readline                  8.1                  h9ed2024_0  
requests                  2.26.0             pyhd3eb1b0_0  
requests-oauthlib         1.3.0                      py_0  
resampy                   0.2.2                      py_0    conda-forge
rsa                       4.7.2              pyhd3eb1b0_1  
samplestamps              0.4.4            py38h7772d1b_0    ncb
scikit-image              0.18.1           py38hb2f4e1b_0  
scikit-learn              1.0.1            py38hae1ba45_0  
scipy                     1.7.1            py38h88652d9_2  
setuptools                58.0.4           py38hecd8cb5_0  
six                       1.15.0           py38hecd8cb5_0  
snappy                    1.1.8                hb1e8313_0  
sphinxcontrib-napoleon    0.7                        py_0    conda-forge
sqlite                    3.36.0               hce871da_0  
tabulate                  0.8.9            py38hecd8cb5_0  
tensorboard               2.4.0              pyhc547734_0  
tensorboard-plugin-wit    1.6.0                      py_0  
tensorflow                2.4.3            py38h50d1736_0    conda-forge
tensorflow-base           2.4.3            py38h8860697_0    conda-forge
tensorflow-estimator      2.4.1              pyheb71bc4_0  
termcolor                 1.1.0            py38hecd8cb5_1  
terminaltables            3.1.0                      py_0    conda-forge
threadpoolctl             2.2.0              pyh0d69192_0  
tifffile                  2021.7.2           pyhd3eb1b0_2  
tk                        8.6.11               h7bc2e8c_0  
toolz                     0.11.1             pyhd3eb1b0_0  
tornado                   6.1              py38h9ed2024_0  
tqdm                      4.62.3             pyhd3eb1b0_1  
traitlets                 5.1.0              pyhd3eb1b0_0  
typing-extensions         3.7.4.3              hd3eb1b0_0  
typing_extensions         3.7.4.3            pyh06a4308_0  
urllib3                   1.26.7             pyhd3eb1b0_0  
wcwidth                   0.2.5              pyhd3eb1b0_0  
werkzeug                  2.0.1              pyhd3eb1b0_0  
wheel                     0.37.0             pyhd3eb1b0_1  
wrapt                     1.12.1           py38haf1e3a3_1  
x264                      1!157.20191217       h1de35cc_0  
xarray                    0.19.0             pyhd3eb1b0_1  
xarray-behave             0.27.5                   py38_0    ncb
xz                        5.2.5                h1de35cc_0  
yaml                      0.2.5                haf1e3a3_0  
yarl                      1.6.3            py38h9ed2024_0  
zarr                      2.10.1             pyhd8ed1ab_0    conda-forge
zfp                       0.5.5                h23ab428_6  
zipp                      3.6.0              pyhd3eb1b0_0  
zlib                      1.2.11               h1de35cc_3  
zstd                      1.4.9                h322a384_0  
postpop commented 3 years ago

Not sure what the issue is. Could you import pyside2 and then pyqtgraph and post the resulting error message? Like so:

import PySide2
import pyqtgraph
nickjourjine commented 3 years ago

Running

import PySide2
import pyqtgraph

completes without errors for me. It just returns the same warning I see when I try to run das gui, ie

/Applications/anaconda3/envs/das/lib/python3.8/site-packages/pyqtgraph/debug.py:21: UserWarning: Due to PYSIDE-1140, ThreadChase and ThreadColor won't work
  warnings.warn("Due to PYSIDE-1140, ThreadChase and ThreadColor won't work")
postpop commented 3 years ago

Thanks! Then of these should produce an error:

import xarray_behave.gui.app
import xarray_behave as xb

Could you please send the output? Thanks! Sorry this is so complicated...

nickjourjine commented 3 years ago

Indeed!

import xarray_behave as xb runs without errors, but

import xarray_behave.gui.app produces the following warning (same as above) and error:

/Applications/anaconda3/envs/das/lib/python3.8/site-packages/pyqtgraph/debug.py:21: UserWarning: Due to PYSIDE-1140, ThreadChase and ThreadColor won't work
  warnings.warn("Due to PYSIDE-1140, ThreadChase and ThreadColor won't work")

ImportError                               Traceback (most recent call last)
/var/folders/qm/nflfvqhx1m95rq8v5c7k8p4r0000gn/T/ipykernel_3300/1880977348.py in <module>
----> 1 import xarray_behave.gui.app

/Applications/anaconda3/envs/das/lib/python3.8/site-packages/xarray_behave/gui/app.py in <module>
     42                 event_utils)
     43 
---> 44 from . import (colormaps,
     45                utils,
     46                views,

/Applications/anaconda3/envs/das/lib/python3.8/site-packages/xarray_behave/gui/utils.py in <module>
      1 from typing import Iterable
----> 2 import cv2
      3 import numpy as np
      4 import h5py
      5 import colorcet

/Applications/anaconda3/envs/das/lib/python3.8/site-packages/cv2/__init__.py in <module>
      3 import sys
      4 
----> 5 from .cv2 import *
      6 from .data import *
      7 

ImportError: dlopen(/Applications/anaconda3/envs/das/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so, 2): Symbol not found: _objc_opt_respondsToSelector
  Referenced from: /Applications/anaconda3/envs/das/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so (which was built for Mac OS X 10.15)
  Expected in: /usr/lib/libobjc.A.dylib
 in /Applications/anaconda3/envs/das/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so

And no problem at all - thank you for being so responsive!

postpop commented 3 years ago

Thanks - so opencv is the issue.

This part of the error message indicates that the installed built of opencv does not work with macOS 10.14: Referenced from: /Applications/anaconda3/envs/das/lib/python3.8/site-packages/cv2/cv2.cpython-38-darwin.so (which was built for Mac OS X 10.15).

Not sure what to do about this. Maybe try to install opencv using pip. This may mess up other packages though, so maybe first try with no dependencies: pip install opencv-python-headless --no-deps --force-reinstall --upgrade. If that doesn't help, then install with deps: pip install opencv-python-headless --upgrade --force-reinstall.

nickjourjine commented 3 years ago

Trying to install opencv using pip didn't work (got the error Could not build wheels for opencv-python-headless which use PEP 517 and cannot be installed directly). So I updated my operating system to Monterey (v12.01.1), and now I can run the gui without any issue.

Thanks so much for your help figuring this out!

postpop commented 3 years ago

Glad you got it running eventually!