ContinuumIO / anaconda-issues

Anaconda issue tracking
648 stars 224 forks source link

anaconda-navigator unable to launch on POP!_OS when VS Code is installed #11868

Open rcbevans opened 4 years ago

rcbevans commented 4 years ago

Actual Behavior

anaconda-navigator fails to launch with Traceback error in lib/python3.7/site-packages/anaconda_navigator/api/external_apps/vscode.py.

``` anaconda-navigator Traceback (most recent call last): File "/usr/local/anaconda3/lib/python3.7/site-packages/anaconda_navigator/widgets/main_window.py", line 541, in setup self.post_setup(conda_data=conda_data) File "/usr/local/anaconda3/lib/python3.7/site-packages/anaconda_navigator/widgets/main_window.py", line 578, in post_setup self.tab_home.setup(conda_data) File "/usr/local/anaconda3/lib/python3.7/site-packages/anaconda_navigator/widgets/tabs/home.py", line 169, in setup self.set_applications(applications, packages) File "/usr/local/anaconda3/lib/python3.7/site-packages/anaconda_navigator/widgets/tabs/home.py", line 204, in set_applications apps = self.api.process_apps(applications, prefix=self.current_prefix) File "/usr/local/anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/anaconda_api.py", line 848, in process_apps app = app(config=self.config, process_api=self._process_api, conda_api=self._conda_api) File "/usr/local/anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/external_apps/vscode.py", line 48, in __init__ **kwargs File "/usr/local/anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/external_apps/base.py", line 43, in __init__ self.init() File "/usr/local/anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/external_apps/base.py", line 60, in init SUBDIR, INST_EXT, INST_DIR = self._find_linux_install_dir() File "/usr/local/anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/external_apps/vscode.py", line 168, in _find_linux_install_dir if DISTRO_NAME in ['ubuntu', 'debian']: UnboundLocalError: local variable 'DISTRO_NAME' referenced before assignment ```

Expected Behavior

anaconda-launcher should launch.

Steps to Reproduce

Install POP!_OS, and VS code and try and launch anaconda-launcher.

Anaconda or Miniconda version:

Anaconda3-2020.02-Linux-x86_64

Operating System:
``` cat /etc/*-release DISTRIB_ID=Pop DISTRIB_RELEASE=20.04 DISTRIB_CODENAME=focal DISTRIB_DESCRIPTION="Pop!_OS 20.04 LTS" NAME="Pop!_OS" VERSION="20.04 LTS" ID=pop ID_LIKE="ubuntu debian" PRETTY_NAME="Pop!_OS 20.04 LTS" VERSION_ID="20.04" HOME_URL="https://system76.com/pop" SUPPORT_URL="http://support.system76.com" BUG_REPORT_URL="https://github.com/pop-os/pop/issues" PRIVACY_POLICY_URL="https://system76.com/privacy" VERSION_CODENAME=focal UBUNTU_CODENAME=focal LOGO=distributor-logo-pop-os ```
conda info
``` active environment : base active env location : /usr/local/anaconda3 shell level : 2 user config file : /home/rich/.condarc populated config files : /home/rich/.condarc conda version : 4.8.2 conda-build version : 3.18.11 python version : 3.7.6.final.0 virtual packages : __cuda=10.2 __glibc=2.31 base environment : /usr/local/anaconda3 (read only) channel URLs : https://repo.anaconda.com/pkgs/main/linux-64 https://repo.anaconda.com/pkgs/main/noarch https://repo.anaconda.com/pkgs/r/linux-64 https://repo.anaconda.com/pkgs/r/noarch package cache : /usr/local/anaconda3/pkgs /home/rich/.conda/pkgs envs directories : /home/rich/.conda/envs /usr/local/anaconda3/envs platform : linux-64 user-agent : conda/4.8.2 requests/2.22.0 CPython/3.7.6 Linux/5.4.0-7634-generic pop/20.04 glibc/2.31 UID:GID : 1000:1000 netrc file : None offline mode : False ```
conda list --show-channel-urls
``` # packages in environment at /usr/local/anaconda3: # # Name Version Build Channel _ipyw_jlab_nb_ext_conf 0.1.0 py37_0 defaults _libgcc_mutex 0.1 main defaults alabaster 0.7.12 py37_0 defaults anaconda 2020.02 py37_0 defaults anaconda-client 1.7.2 py37_0 defaults anaconda-navigator 1.9.12 py37_0 defaults anaconda-project 0.8.4 py_0 defaults argh 0.26.2 py37_0 defaults asn1crypto 1.3.0 py37_0 defaults astroid 2.3.3 py37_0 defaults astropy 4.0 py37h7b6447c_0 defaults atomicwrites 1.3.0 py37_1 defaults attrs 19.3.0 py_0 defaults autopep8 1.4.4 py_0 defaults babel 2.8.0 py_0 defaults backcall 0.1.0 py37_0 defaults backports 1.0 py_2 defaults backports.functools_lru_cache 1.6.1 py_0 defaults backports.shutil_get_terminal_size 1.0.0 py37_2 defaults backports.tempfile 1.0 py_1 defaults backports.weakref 1.0.post1 py_1 defaults beautifulsoup4 4.8.2 py37_0 defaults bitarray 1.2.1 py37h7b6447c_0 defaults bkcharts 0.2 py37_0 defaults blas 1.0 mkl defaults bleach 3.1.0 py37_0 defaults blosc 1.16.3 hd408876_0 defaults bokeh 1.4.0 py37_0 defaults boto 2.49.0 py37_0 defaults bottleneck 1.3.2 py37heb32a55_0 defaults bzip2 1.0.8 h7b6447c_0 defaults ca-certificates 2020.1.1 0 defaults cairo 1.14.12 h8948797_3 defaults certifi 2019.11.28 py37_0 defaults cffi 1.14.0 py37h2e261b9_0 defaults chardet 3.0.4 py37_1003 defaults click 7.0 py37_0 defaults cloudpickle 1.3.0 py_0 defaults clyent 1.2.2 py37_1 defaults colorama 0.4.3 py_0 defaults conda 4.8.2 py37_0 defaults conda-build 3.18.11 py37_0 defaults conda-env 2.6.0 1 defaults conda-package-handling 1.6.0 py37h7b6447c_0 defaults conda-verify 3.4.2 py_1 defaults contextlib2 0.6.0.post1 py_0 defaults cryptography 2.8 py37h1ba5d50_0 defaults curl 7.68.0 hbc83047_0 defaults cycler 0.10.0 py37_0 defaults cython 0.29.15 py37he6710b0_0 defaults cytoolz 0.10.1 py37h7b6447c_0 defaults dask 2.11.0 py_0 defaults dask-core 2.11.0 py_0 defaults dbus 1.13.12 h746ee38_0 defaults decorator 4.4.1 py_0 defaults defusedxml 0.6.0 py_0 defaults diff-match-patch 20181111 py_0 defaults distributed 2.11.0 py37_0 defaults docutils 0.16 py37_0 defaults entrypoints 0.3 py37_0 defaults et_xmlfile 1.0.1 py37_0 defaults expat 2.2.6 he6710b0_0 defaults fastcache 1.1.0 py37h7b6447c_0 defaults filelock 3.0.12 py_0 defaults flake8 3.7.9 py37_0 defaults flask 1.1.1 py_0 defaults fontconfig 2.13.0 h9420a91_0 defaults freetype 2.9.1 h8a8886c_1 defaults fribidi 1.0.5 h7b6447c_0 defaults fsspec 0.6.2 py_0 defaults future 0.18.2 py37_0 defaults get_terminal_size 1.0.0 haa9412d_0 defaults gevent 1.4.0 py37h7b6447c_0 defaults glib 2.63.1 h5a9c865_0 defaults glob2 0.7 py_0 defaults gmp 6.1.2 h6c8ec71_1 defaults gmpy2 2.0.8 py37h10f8cd9_2 defaults graphite2 1.3.13 h23475e2_0 defaults greenlet 0.4.15 py37h7b6447c_0 defaults gst-plugins-base 1.14.0 hbbd80ab_1 defaults gstreamer 1.14.0 hb453b48_1 defaults h5py 2.10.0 py37h7918eee_0 defaults harfbuzz 1.8.8 hffaf4a1_0 defaults hdf5 1.10.4 hb1b8bf9_0 defaults heapdict 1.0.1 py_0 defaults html5lib 1.0.1 py37_0 defaults hypothesis 5.5.4 py_0 defaults icu 58.2 h9c2bf20_1 defaults idna 2.8 py37_0 defaults imageio 2.6.1 py37_0 defaults imagesize 1.2.0 py_0 defaults importlib_metadata 1.5.0 py37_0 defaults intel-openmp 2020.0 166 defaults intervaltree 3.0.2 py_0 defaults ipykernel 5.1.4 py37h39e3cac_0 defaults ipython 7.12.0 py37h5ca1d4c_0 defaults ipython_genutils 0.2.0 py37_0 defaults ipywidgets 7.5.1 py_0 defaults isort 4.3.21 py37_0 defaults itsdangerous 1.1.0 py37_0 defaults jbig 2.1 hdba287a_0 defaults jdcal 1.4.1 py_0 defaults jedi 0.14.1 py37_0 defaults jeepney 0.4.2 py_0 defaults jinja2 2.11.1 py_0 defaults joblib 0.14.1 py_0 defaults jpeg 9b h024ee3a_2 defaults json5 0.9.1 py_0 defaults jsonschema 3.2.0 py37_0 defaults jupyter 1.0.0 py37_7 defaults jupyter_client 5.3.4 py37_0 defaults jupyter_console 6.1.0 py_0 defaults jupyter_core 4.6.1 py37_0 defaults jupyterlab 1.2.6 pyhf63ae98_0 defaults jupyterlab_server 1.0.6 py_0 defaults keyring 21.1.0 py37_0 defaults kiwisolver 1.1.0 py37he6710b0_0 defaults krb5 1.17.1 h173b8e3_0 defaults lazy-object-proxy 1.4.3 py37h7b6447c_0 defaults ld_impl_linux-64 2.33.1 h53a641e_7 defaults libarchive 3.3.3 h5d8350f_5 defaults libcurl 7.68.0 h20c2e04_0 defaults libedit 3.1.20181209 hc058e9b_0 defaults libffi 3.2.1 hd88cf55_4 defaults libgcc-ng 9.1.0 hdf63c60_0 defaults libgfortran-ng 7.3.0 hdf63c60_0 defaults liblief 0.9.0 h7725739_2 defaults libpng 1.6.37 hbc83047_0 defaults libsodium 1.0.16 h1bed415_0 defaults libspatialindex 1.9.3 he6710b0_0 defaults libssh2 1.8.2 h1ba5d50_0 defaults libstdcxx-ng 9.1.0 hdf63c60_0 defaults libtiff 4.1.0 h2733197_0 defaults libtool 2.4.6 h7b6447c_5 defaults libuuid 1.0.3 h1bed415_2 defaults libxcb 1.13 h1bed415_1 defaults libxml2 2.9.9 hea5a465_1 defaults libxslt 1.1.33 h7d1a2b0_0 defaults llvmlite 0.31.0 py37hd408876_0 defaults locket 0.2.0 py37_1 defaults lxml 4.5.0 py37hefd8a0e_0 defaults lz4-c 1.8.1.2 h14c3975_0 defaults lzo 2.10 h49e0be7_2 defaults markupsafe 1.1.1 py37h7b6447c_0 defaults matplotlib 3.1.3 py37_0 defaults matplotlib-base 3.1.3 py37hef1b27d_0 defaults mccabe 0.6.1 py37_1 defaults mistune 0.8.4 py37h7b6447c_0 defaults mkl 2020.0 166 defaults mkl-service 2.3.0 py37he904b0f_0 defaults mkl_fft 1.0.15 py37ha843d7b_0 defaults mkl_random 1.1.0 py37hd6b4f25_0 defaults mock 4.0.1 py_0 defaults more-itertools 8.2.0 py_0 defaults mpc 1.1.0 h10f8cd9_1 defaults mpfr 4.0.1 hdf1c602_3 defaults mpmath 1.1.0 py37_0 defaults msgpack-python 0.6.1 py37hfd86e86_1 defaults multipledispatch 0.6.0 py37_0 defaults navigator-updater 0.2.1 py37_0 defaults nbconvert 5.6.1 py37_0 defaults nbformat 5.0.4 py_0 defaults ncurses 6.2 he6710b0_0 defaults networkx 2.4 py_0 defaults nltk 3.4.5 py37_0 defaults nose 1.3.7 py37_2 defaults notebook 6.0.3 py37_0 defaults numba 0.48.0 py37h0573a6f_0 defaults numexpr 2.7.1 py37h423224d_0 defaults numpy 1.18.1 py37h4f9e942_0 defaults numpy-base 1.18.1 py37hde5b4d6_1 defaults numpydoc 0.9.2 py_0 defaults olefile 0.46 py37_0 defaults openpyxl 3.0.3 py_0 defaults openssl 1.1.1d h7b6447c_4 defaults packaging 20.1 py_0 defaults pandas 1.0.1 py37h0573a6f_0 defaults pandoc 2.2.3.2 0 defaults pandocfilters 1.4.2 py37_1 defaults pango 1.42.4 h049681c_0 defaults parso 0.5.2 py_0 defaults partd 1.1.0 py_0 defaults patchelf 0.10 he6710b0_0 defaults path 13.1.0 py37_0 defaults path.py 12.4.0 0 defaults pathlib2 2.3.5 py37_0 defaults pathtools 0.1.2 py_1 defaults patsy 0.5.1 py37_0 defaults pcre 8.43 he6710b0_0 defaults pep8 1.7.1 py37_0 defaults pexpect 4.8.0 py37_0 defaults pickleshare 0.7.5 py37_0 defaults pillow 7.0.0 py37hb39fc2d_0 defaults pip 20.0.2 py37_1 defaults pixman 0.38.0 h7b6447c_0 defaults pkginfo 1.5.0.1 py37_0 defaults pluggy 0.13.1 py37_0 defaults ply 3.11 py37_0 defaults prometheus_client 0.7.1 py_0 defaults prompt_toolkit 3.0.3 py_0 defaults psutil 5.6.7 py37h7b6447c_0 defaults ptyprocess 0.6.0 py37_0 defaults py 1.8.1 py_0 defaults py-lief 0.9.0 py37h7725739_2 defaults pycodestyle 2.5.0 py37_0 defaults pycosat 0.6.3 py37h7b6447c_0 defaults pycparser 2.19 py37_0 defaults pycrypto 2.6.1 py37h14c3975_9 defaults pycurl 7.43.0.5 py37h1ba5d50_0 defaults pydocstyle 4.0.1 py_0 defaults pyflakes 2.1.1 py37_0 defaults pygments 2.5.2 py_0 defaults pylint 2.4.4 py37_0 defaults pyodbc 4.0.30 py37he6710b0_0 defaults pyopenssl 19.1.0 py37_0 defaults pyparsing 2.4.6 py_0 defaults pyqt 5.9.2 py37h05f1152_2 defaults pyrsistent 0.15.7 py37h7b6447c_0 defaults pysocks 1.7.1 py37_0 defaults pytables 3.6.1 py37h71ec239_0 defaults pytest 5.3.5 py37_0 defaults pytest-arraydiff 0.3 py37h39e3cac_0 defaults pytest-astropy 0.8.0 py_0 defaults pytest-astropy-header 0.1.2 py_0 defaults pytest-doctestplus 0.5.0 py_0 defaults pytest-openfiles 0.4.0 py_0 defaults pytest-remotedata 0.3.2 py37_0 defaults python 3.7.6 h0371630_2 defaults python-dateutil 2.8.1 py_0 defaults python-jsonrpc-server 0.3.4 py_0 defaults python-language-server 0.31.7 py37_0 defaults python-libarchive-c 2.8 py37_13 defaults pytz 2019.3 py_0 defaults pywavelets 1.1.1 py37h7b6447c_0 defaults pyxdg 0.26 py_0 defaults pyyaml 5.3 py37h7b6447c_0 defaults pyzmq 18.1.1 py37he6710b0_0 defaults qdarkstyle 2.8 py_0 defaults qt 5.9.7 h5867ecd_1 defaults qtawesome 0.6.1 py_0 defaults qtconsole 4.6.0 py_1 defaults qtpy 1.9.0 py_0 defaults readline 7.0 h7b6447c_5 defaults requests 2.22.0 py37_1 defaults ripgrep 11.0.2 he32d670_0 defaults rope 0.16.0 py_0 defaults rtree 0.9.3 py37_0 defaults ruamel_yaml 0.15.87 py37h7b6447c_0 defaults scikit-image 0.16.2 py37h0573a6f_0 defaults scikit-learn 0.22.1 py37hd81dba3_0 defaults scipy 1.4.1 py37h0b6359f_0 defaults seaborn 0.10.0 py_0 defaults secretstorage 3.1.2 py37_0 defaults send2trash 1.5.0 py37_0 defaults setuptools 45.2.0 py37_0 defaults simplegeneric 0.8.1 py37_2 defaults singledispatch 3.4.0.3 py37_0 defaults sip 4.19.8 py37hf484d3e_0 defaults six 1.14.0 py37_0 defaults snappy 1.1.7 hbae5bb6_3 defaults snowballstemmer 2.0.0 py_0 defaults sortedcollections 1.1.2 py37_0 defaults sortedcontainers 2.1.0 py37_0 defaults soupsieve 1.9.5 py37_0 defaults sphinx 2.4.0 py_0 defaults sphinxcontrib 1.0 py37_1 defaults sphinxcontrib-applehelp 1.0.1 py_0 defaults sphinxcontrib-devhelp 1.0.1 py_0 defaults sphinxcontrib-htmlhelp 1.0.2 py_0 defaults sphinxcontrib-jsmath 1.0.1 py_0 defaults sphinxcontrib-qthelp 1.0.2 py_0 defaults sphinxcontrib-serializinghtml 1.1.3 py_0 defaults sphinxcontrib-websupport 1.2.0 py_0 defaults spyder 4.0.1 py37_0 defaults spyder-kernels 1.8.1 py37_0 defaults sqlalchemy 1.3.13 py37h7b6447c_0 defaults sqlite 3.31.1 h7b6447c_0 defaults statsmodels 0.11.0 py37h7b6447c_0 defaults sympy 1.5.1 py37_0 defaults tbb 2020.0 hfd86e86_0 defaults tblib 1.6.0 py_0 defaults terminado 0.8.3 py37_0 defaults testpath 0.4.4 py_0 defaults tk 8.6.8 hbc83047_0 defaults toolz 0.10.0 py_0 defaults tornado 6.0.3 py37h7b6447c_3 defaults tqdm 4.42.1 py_0 defaults traitlets 4.3.3 py37_0 defaults ujson 1.35 py37h14c3975_0 defaults unicodecsv 0.14.1 py37_0 defaults unixodbc 2.3.7 h14c3975_0 defaults urllib3 1.25.8 py37_0 defaults watchdog 0.10.2 py37_0 defaults wcwidth 0.1.8 py_0 defaults webencodings 0.5.1 py37_1 defaults werkzeug 1.0.0 py_0 defaults wheel 0.34.2 py37_0 defaults widgetsnbextension 3.5.1 py37_0 defaults wrapt 1.11.2 py37h7b6447c_0 defaults wurlitzer 2.0.0 py37_0 defaults xlrd 1.2.0 py37_0 defaults xlsxwriter 1.2.7 py_0 defaults xlwt 1.3.0 py37_0 defaults xmltodict 0.12.0 py_0 defaults xz 5.2.4 h14c3975_4 defaults yaml 0.1.7 had09818_2 defaults yapf 0.28.0 py_0 defaults zeromq 4.3.1 he6710b0_3 defaults zict 1.0.0 py_0 defaults zipp 2.2.0 py_0 defaults zlib 1.2.11 h7b6447c_3 defaults zstd 1.3.7 h0b5b093_0 defaults ```

The fix:

Modify the three instances of

self._DISTRO_NAME in ['ubuntu', 'debian']

to be

self._DISTRO_NAME in ['ubuntu', 'debian', 'pop']

in anaconda3/lib/python3.7/site-packages/anaconda_navigator/api/external_apps/vscode.py

astrojuanlu commented 3 years ago

This also happens in Linux Mint.

astrojuanlu commented 3 years ago

In fact, this was fixed a while ago https://github.com/ContinuumIO/anaconda-issues/issues/11635#issuecomment-594494001