napari: Installing some plugins fails when conda-based environments are mixed with builtin pip installer

🐛 Bug

Hi all, I’m just testing napari 0.4.11rc0. This error is however a bit older. I have seen it in other versions of napari before. Typically I see it when using the napari-app. Today it happened in napari installed via pip in a conda environment.

When installing stardist-napari, it takes forever and eventually fails:

ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: 'C:\\Windows\\Temp\\pip-uninstall-5s9yygth\\core\\_multiarray_tests.cp38-win_amd64.pyd'

image

Full log:

WARNING: Ignoring invalid distribution -illow (c:\users\rober\miniconda3\envs\bio1\lib\site-packages)

WARNING: Ignoring invalid distribution -illow (c:\users\rober\miniconda3\envs\bio1\lib\site-packages)

Collecting stardist-napari

  Using cached stardist_napari-2021.6.28-py3-none-any.whl (28 kB)

Collecting tensorflow

  Downloading tensorflow-2.6.0-cp38-cp38-win_amd64.whl (423.2 MB)

Collecting stardist>=0.7.0

  Downloading stardist-0.7.3-cp38-cp38-win_amd64.whl (757 kB)

Requirement already satisfied: magicgui>=0.2.9 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from stardist-napari) (0.2.10)

Requirement already satisfied: napari>=0.4.8 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from stardist-napari) (0.4.11rc0)

Requirement already satisfied: qtpy>=1.7.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from magicgui>=0.2.9->stardist-napari) (1.9.0)

Requirement already satisfied: typing-extensions in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from magicgui>=0.2.9->stardist-napari) (3.7.4.3)

Requirement already satisfied: docstring-parser in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from magicgui>=0.2.9->stardist-napari) (0.8.1)

Requirement already satisfied: jsonschema>=3.2.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (3.2.0)

Requirement already satisfied: pydantic>=1.8.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (1.8.2)

Requirement already satisfied: tifffile>=2020.2.16 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (2021.7.2)

Requirement already satisfied: appdirs>=1.4.4 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (1.4.4)

Requirement already satisfied: pint>=0.17 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (0.17)

Requirement already satisfied: tqdm>=4.56.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (4.61.2)

Requirement already satisfied: PyYAML>=5.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (5.4.1)

Requirement already satisfied: numpydoc>=0.9.2 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (1.1.0)

Requirement already satisfied: scipy>=1.2.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (1.7.1)

Requirement already satisfied: imageio>=2.5.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (2.9.0)

Requirement already satisfied: napari-plugin-engine>=0.1.9 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (0.1.9)
Requirement already satisfied: napari-svg>=0.1.4 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (0.1.5)

Requirement already satisfied: cachey>=0.2.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (0.2.1)

Requirement already satisfied: wrapt>=1.11.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (1.12.1)

Requirement already satisfied: Pillow!=7.1.0,!=7.1.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (8.2.0)

Requirement already satisfied: PyOpenGL>=3.1.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (3.1.5)

Requirement already satisfied: napari-console>=0.0.3 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (0.0.3)

Requirement already satisfied: superqt>=0.2.2 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (0.2.2)

Requirement already satisfied: vispy>=0.6.4 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (0.7.0)

Requirement already satisfied: toolz>=0.10.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (0.11.1)

Requirement already satisfied: dask[array]!=2.28.0,>=2.1.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (2021.5.1)

Requirement already satisfied: psutil>=5.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (5.8.0)

Requirement already satisfied: numpy>=1.16.5 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari>=0.4.8->stardist-napari) (1.21.1)

Requirement already satisfied: heapdict in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from cachey>=0.2.1->napari>=0.4.8->stardist-napari) (1.0.1)

Requirement already satisfied: fsspec>=0.6.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from dask[array]!=2.28.0,>=2.1.0->napari>=0.4.8->stardist-napari) (2021.7.0)

Requirement already satisfied: partd>=0.3.10 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from dask[array]!=2.28.0,>=2.1.0->napari>=0.4.8->stardist-napari) (1.2.0)

Requirement already satisfied: cloudpickle>=1.1.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from dask[array]!=2.28.0,>=2.1.0->napari>=0.4.8->stardist-napari) (1.6.0)

Requirement already satisfied: setuptools in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from jsonschema>=3.2.0->napari>=0.4.8->stardist-napari) (49.6.0.post20210108)

Requirement already satisfied: attrs>=17.4.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from jsonschema>=3.2.0->napari>=0.4.8->stardist-napari) (21.2.0)

Requirement already satisfied: six>=1.11.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from jsonschema>=3.2.0->napari>=0.4.8->stardist-napari) (1.16.0)

Requirement already satisfied: pyrsistent>=0.14.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from jsonschema>=3.2.0->napari>=0.4.8->stardist-napari) (0.17.3)

Requirement already satisfied: IPython>=7.7.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (7.25.0)

Requirement already satisfied: qtconsole!=4.7.6,>=4.5.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (5.1.1)

Requirement already satisfied: ipykernel>=5.2.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (6.0.1)

Requirement already satisfied: traitlets>=4.1.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from ipykernel>=5.2.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (5.0.5)

Requirement already satisfied: tornado>=4.2 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from ipykernel>=5.2.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (6.1)

Requirement already satisfied: jupyter-client in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from ipykernel>=5.2.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (6.1.12)

Requirement already satisfied: debugpy>=1.0.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from ipykernel>=5.2.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (1.3.0)

Requirement already satisfied: colorama in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (0.4.4)

Requirement already satisfied: matplotlib-inline in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (0.1.2)

Requirement already satisfied: pickleshare in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (0.7.5)

Requirement already satisfied: prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (3.0.19)

Requirement already satisfied: jedi>=0.16 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (0.18.0)

Requirement already satisfied: pygments in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (2.9.0)

Requirement already satisfied: backcall in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (0.2.0)

Requirement already satisfied: decorator in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (4.4.2)

Requirement already satisfied: parso<0.9.0,>=0.8.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from jedi>=0.16->IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (0.8.2)

Requirement already satisfied: sphinx>=1.6.5 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (4.1.0)

Requirement already satisfied: Jinja2>=2.3 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (3.0.1)

Requirement already satisfied: MarkupSafe>=2.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from Jinja2>=2.3->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (2.0.1)

Requirement already satisfied: locket in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from partd>=0.3.10->dask[array]!=2.28.0,>=2.1.0->napari>=0.4.8->stardist-napari) (0.2.1)

Requirement already satisfied: packaging in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from pint>=0.17->napari>=0.4.8->stardist-napari) (21.0)

Requirement already satisfied: wcwidth in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from prompt-toolkit!=3.0.0,!=3.0.1,<3.1.0,>=2.0.0->IPython>=7.7.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (0.2.5)

Requirement already satisfied: ipython-genutils in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from qtconsole!=4.7.6,>=4.5.1->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (0.2.0)

Requirement already satisfied: pyzmq>=17.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from qtconsole!=4.7.6,>=4.5.1->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (22.1.0)

Requirement already satisfied: jupyter-core in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from qtconsole!=4.7.6,>=4.5.1->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (4.7.1)

Requirement already satisfied: python-dateutil>=2.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from jupyter-client->ipykernel>=5.2.0->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (2.8.2)

Requirement already satisfied: pywin32>=1.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from jupyter-core->qtconsole!=4.7.6,>=4.5.1->napari-console>=0.0.3->napari>=0.4.8->stardist-napari) (300)

Requirement already satisfied: sphinxcontrib-jsmath in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (1.0.1)

Requirement already satisfied: sphinxcontrib-qthelp in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (1.0.3)

Requirement already satisfied: alabaster<0.8,>=0.7 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (0.7.12)

Requirement already satisfied: docutils<0.18,>=0.14 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (0.17.1)

Requirement already satisfied: imagesize in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (1.2.0)

Requirement already satisfied: snowballstemmer>=1.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (2.1.0)

Requirement already satisfied: sphinxcontrib-devhelp in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (1.0.2)

Requirement already satisfied: sphinxcontrib-htmlhelp in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (2.0.0)

Requirement already satisfied: requests>=2.5.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (2.26.0)

Requirement already satisfied: sphinxcontrib-applehelp in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (1.0.2)

Requirement already satisfied: sphinxcontrib-serializinghtml in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (1.1.5)

Requirement already satisfied: babel>=1.3 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (2.9.1)

Requirement already satisfied: pytz>=2015.7 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from babel>=1.3->sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (2021.1)

Requirement already satisfied: idna<4,>=2.5 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from requests>=2.5.0->sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (3.2)

Requirement already satisfied: urllib3<1.27,>=1.21.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from requests>=2.5.0->sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (1.26.6)

Requirement already satisfied: certifi>=2017.4.17 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from requests>=2.5.0->sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (2021.5.30)

Requirement already satisfied: charset-normalizer~=2.0.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from requests>=2.5.0->sphinx>=1.6.5->numpydoc>=0.9.2->napari>=0.4.8->stardist-napari) (2.0.1)

Requirement already satisfied: scikit-image in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from stardist>=0.7.0->stardist-napari) (0.18.2)

Collecting csbdeep>=0.6.3

  Downloading csbdeep-0.6.3-py2.py3-none-any.whl (73 kB)

Requirement already satisfied: numba in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from stardist>=0.7.0->stardist-napari) (0.53.1)

Requirement already satisfied: h5py<3 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from csbdeep>=0.6.3->stardist>=0.7.0->stardist-napari) (2.10.0)

Requirement already satisfied: matplotlib in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from csbdeep>=0.6.3->stardist>=0.7.0->stardist-napari) (3.4.2)

Requirement already satisfied: kiwisolver in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from vispy>=0.6.4->napari>=0.4.8->stardist-napari) (1.3.1)

Requirement already satisfied: hsluv in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from vispy>=0.6.4->napari>=0.4.8->stardist-napari) (5.0.2)

Requirement already satisfied: freetype-py in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from vispy>=0.6.4->napari>=0.4.8->stardist-napari) (2.2.0)

Requirement already satisfied: cycler>=0.10 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from matplotlib->csbdeep>=0.6.3->stardist>=0.7.0->stardist-napari) (0.10.0)

Requirement already satisfied: pyparsing>=2.2.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from matplotlib->csbdeep>=0.6.3->stardist>=0.7.0->stardist-napari) (2.4.7)

Requirement already satisfied: llvmlite<0.37,>=0.36.0rc1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from numba->stardist>=0.7.0->stardist-napari) (0.36.0)

Requirement already satisfied: PyWavelets>=1.1.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from scikit-image->stardist>=0.7.0->stardist-napari) (1.1.1)

Requirement already satisfied: networkx>=2.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from scikit-image->stardist>=0.7.0->stardist-napari) (2.5.1)

Requirement already satisfied: flatbuffers~=1.12.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (1.12)

Requirement already satisfied: absl-py~=0.10 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (0.13.0)

Collecting tensorflow

  Downloading tensorflow-2.5.1-cp38-cp38-win_amd64.whl (422.6 MB)

  Using cached tensorflow-2.5.0-cp38-cp38-win_amd64.whl (422.6 MB)

  Downloading tensorflow-2.4.3-cp38-cp38-win_amd64.whl (370.9 MB)

Requirement already satisfied: tensorboard~=2.4 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (2.5.0)

Collecting six>=1.11.0

  Using cached six-1.15.0-py2.py3-none-any.whl (10 kB)

Requirement already satisfied: gast==0.3.3 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (0.3.3)

Requirement already satisfied: astunparse~=1.6.3 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (1.6.3)

Requirement already satisfied: grpcio~=1.32.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (1.32.0)

Requirement already satisfied: google-pasta~=0.2 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (0.2.0)

Requirement already satisfied: keras-preprocessing~=1.1.2 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (1.1.2)

Collecting numpy>=1.16.5

  Using cached numpy-1.19.5-cp38-cp38-win_amd64.whl (13.3 MB)

Requirement already satisfied: opt-einsum~=3.3.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (3.3.0)

Requirement already satisfied: wheel~=0.35 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (0.36.2)
Requirement already satisfied: termcolor~=1.1.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (1.1.0)

Requirement already satisfied: protobuf>=3.9.2 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (3.17.3)

Requirement already satisfied: tensorflow-estimator<2.5.0,>=2.4.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorflow->stardist-napari) (2.4.0)

Requirement already satisfied: google-auth<2,>=1.6.3 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorboard~=2.4->tensorflow->stardist-napari) (1.34.0)

Requirement already satisfied: google-auth-oauthlib<0.5,>=0.4.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorboard~=2.4->tensorflow->stardist-napari) (0.4.5)

Requirement already satisfied: tensorboard-data-server<0.7.0,>=0.6.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorboard~=2.4->tensorflow->stardist-napari) (0.6.1)
Requirement already satisfied: markdown>=2.6.8 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorboard~=2.4->tensorflow->stardist-napari) (3.3.4)

Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorboard~=2.4->tensorflow->stardist-napari) (1.8.0)

Requirement already satisfied: werkzeug>=0.11.15 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from tensorboard~=2.4->tensorflow->stardist-napari) (2.0.1)

Requirement already satisfied: pyasn1-modules>=0.2.1 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from google-auth<2,>=1.6.3->tensorboard~=2.4->tensorflow->stardist-napari) (0.2.8)

Requirement already satisfied: cachetools<5.0,>=2.0.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from google-auth<2,>=1.6.3->tensorboard~=2.4->tensorflow->stardist-napari) (4.2.2)

Requirement already satisfied: rsa<5,>=3.1.4 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from google-auth<2,>=1.6.3->tensorboard~=2.4->tensorflow->stardist-napari) (4.7.2)

Requirement already satisfied: requests-oauthlib>=0.7.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from google-auth-oauthlib<0.5,>=0.4.1->tensorboard~=2.4->tensorflow->stardist-napari) (1.3.0)

Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from pyasn1-modules>=0.2.1->google-auth<2,>=1.6.3->tensorboard~=2.4->tensorflow->stardist-napari) (0.4.8)

Requirement already satisfied: oauthlib>=3.0.0 in c:\users\rober\miniconda3\envs\bio1\lib\site-packages (from requests-oauthlib>=0.7.0->google-auth-oauthlib<0.5,>=0.4.1->tensorboard~=2.4->tensorflow->stardist-napari) (3.1.1)

WARNING: Ignoring invalid distribution -illow (c:\users\rober\miniconda3\envs\bio1\lib\site-packages)

Installing collected packages: six, numpy, csbdeep, tensorflow, stardist, stardist-napari

  Attempting uninstall: six
    WARNING: Ignoring invalid distribution -illow (c:\users\rober\miniconda3\envs\bio1\lib\site-packages)
    Found existing installation: six 1.16.0

    Uninstalling six-1.16.0:

      Successfully uninstalled six-1.16.0

  Attempting uninstall: numpy

    WARNING: Ignoring invalid distribution -illow (c:\users\rober\miniconda3\envs\bio1\lib\site-packages)

    Found existing installation: numpy 1.21.1

    Uninstalling numpy-1.21.1:

      Successfully uninstalled numpy-1.21.1

ERROR: Could not install packages due to an OSError: [WinError 5] Access is denied: 'C:\\Windows\\Temp\\pip-uninstall-5s9yygth\\core\\_multiarray_tests.cp38-win_amd64.pyd'
Consider using the `--user` option or check the permissions.


WARNING: Ignoring invalid distribution -illow (c:\users\rober\miniconda3\envs\bio1\lib\site-packages)
WARNING: Ignoring invalid distribution -illow (c:\users\rober\miniconda3\envs\bio1\lib\site-packages)

WARNING: Ignoring invalid distribution -illow (c:\users\rober\miniconda3\envs\bio1\lib\site-packages)

To Reproduce

Steps to reproduce the behavior:

  1. Start Napari
  2. Go to the plugins installer
  3. Install stardist-napari (that also happens sometimes with other plugins)

Expected behavior

The installation works.

Environment

  • Please copy and paste the information at napari info option in help menubar here: napari: 0.4.11rc0 Platform: Windows-10-10.0.19041-SP0 Python: 3.8.5 (default, Sep 3 2020, 21:29:08) [MSC v.1916 64 bit (AMD64)] Qt: 5.12.9 PyQt5: 5.12.3 NumPy: 1.21.1 SciPy: 1.7.1 Dask: 2021.05.1 VisPy: 0.7.0

OpenGL:

  • GL version: 4.6.0 NVIDIA 466.77
  • MAX_TEXTURE_SIZE: 32768

Screens:

  • screen 1: resolution 1920x1200, scale 1.0

Plugins:

  • Measurements (Plot profile): 0.1.3

  • Measurements (skimage regionprops): 0.1.6

  • Search (Plugin): 0.1.0

  • Segmentation (OCLRFC): 0.4.4

  • Segmentation (split/merge): 0.1.2

  • Utilities (skimage regionprops): 0.1.6

  • Visualization(B/C): 0.1.1

  • aicsimageio-in-memory: 0.3.5

  • cellpose-napari: 0.1.3

  • clEsperanto: 0.10.0

  • console: 0.0.3

  • napari-yapic-prediction: 0.1.dev99

  • ome-types: 0.2.7

  • omero: 0.1.1

  • scikit-image: 0.4.11rc0

  • svg: 0.1.5

  • Any other relevant information:

Additional context

About this issue

  • Original URL
  • State: closed
  • Created 3 years ago
  • Comments: 30 (28 by maintainers)

Most upvoted comments

I can install stardist after some “negotiations” 😃

Screen Shot 2021-11-17 at 11 27 15 PM

The important part here is to realize that reproducing these issues do not require napari at all. It’s a Python packaging issue we can only circumvent by inspection, trial and error and experience. You can do:

$> conda create -n test napari
$> conda activate test
$> pip install stardist-napari

And see the errors without napari ever having run. In the end napari it just running pip install for you.

Most of these issues are solved by pre-providing packages expected by the plugin with conda so pip doesn’t have to mess with your conda environment. In the case of stardist, I needed this:

$> conda create -n napari-stardist napari
$> conda activate napari-stardist
$> conda install -c defaults tensorflow numpy llvmlite numba
$> pip install napari-stardist keras==2.6
# We need to fix keras version; its metadata is wrong and should match tensorflow version (2.6)
$> napari

How did I know whick conda packages I should install before the plugin? Pip doesn’t really have dry-runs… Well, I Ctrl+C mid tensorflow download 😬 But you can also run grayskull. Short tutorial:

$> conda install -c conda-forge grayskull
$> grayskull pypi stardist-napari
....
Host requirements:
  - pip
  - python >=3.7

Run requirements:
  - magicgui >=0.3.0
  - napari >=0.4.9
  - python >=3.7
! - stardist >=0.7.0
  - tensorflow

! = not available on conda-forge

We take the ! prefixed packages and run grayskull again:

$> grayskull pypi stardist
...
Build requirements:
  - {{ compiler('c') }}
Host requirements:
  - numpy
  - pip
  - python

Run requirements:
  - {{ pin_compatible('numpy') }}
!  - csbdeep >=0.6.3
  - numba
  - python
  - scikit-image

Rinse and repeat:

$> grayskull pypi csbdeep
...
Host requirements:
  - pip
  - python

Run requirements:
  - backports.tempfile # [py<34]
  - h5py <3 # [py<39]
  - imagecodecs-lite <=2020 # [py<36]
  - matplotlib-base
  - numpy
  - pathlib2 # [py<3]
  - python
  - scipy
  - six
  - tifffile
  - tqdm

No ! packages! Now we can compile the full list. Note that this is way more exhaustive than needed, but now we can compile that into something like this:

$> conda install \
        magicgui>=0.3.0 \
        matplotlib \
        napari>=0.4.9 \
        numba \
        numpy \
        scikit-image \
        scipy \
        six \
        tensorflow \
        tifffile \
        tqdm 

The ! packages must be installed with pip but now the dependencies will be in place and won’t be installed with pip. In practice it just means installing the plugin with pip.

$> pip install stardist-napari

Note that even with good tooling, we didn’t detect the keras requirement, which needs to be pinned to the same version as tensorflow. Why? Bad metadata, what else. We need to fix that after the installation and first attempt to run the plugin. As you can see, a big mess and we didn’t even run napari yet 😃

Hope this helps!

napari-autoalign

this one states directly on the readme that you might run into that issue. I believe that you have build tools installed, but there’s likely a PATH issue preventing pip from finding the appropriate compiler. That said, I would definitely say that this one is unfortunately up to plugin developers at the moment. That is, a plugin that requires the end-user to compile something (or depends on a package that does) is almost certainly going to fail for a lot of people. The “solution” here is for either for napari-autolign to not depend on probreg (which neither distributes wheels, nor does it appear on conda-forge), or for them to help probreg create a wheel.

they may also neither have the experience nor the time to figure out what’s the issue here (plugin developer speaking here)

I agree, this isn’t intro level stuff… but that’s definitely the state of the ecosystem for now. In other words, if conda forge and pypi haven’t figured out how to solve this problem universally for python developers, then it’s very unlikely that we (napari) are going to be able to swoop in and make it all smooth for beginner napari plugin developers. I’d say the best thing you can do to help at this point is encourage developers to consider their dependencies carefully.

It’s hard for me to derive practical implications from this thread. Assume the next PhD student comes to me, desperate because of an “Access denied” error within the napari plugin installer window. What shall I tell them?

  • tell them what you told us in https://github.com/chanzuckerberg/napari-hub/discussions/299#discussioncomment-1528734 … tell them that the cost of jumping on a speeding train that is just barely gaining its foothold is that sometimes things may break, and you’re happy to fix them! 😉 and ask them to have a little patience, just as I was asking in https://github.com/chanzuckerberg/napari-hub/discussions/299#discussioncomment-1528734
  • Explain that, though python itself is an extremely beginner-friendly language, python packaging is not necessarily trivial particularly when C extensions are involved, and it’s pretty easy for plugin developers to wade into territory that may very well make it so that their plugin doesn’t work on environments that they themselves haven’t tested extensively (if they don’t pay close attention to their dependencies and how those deps are distributed). Explain that there’s really nothing that napari can do to fix that automatically for plugin devs … though we can definitely keep trying to accumulate FAQs and how-tos (admitedly, we have lots of work to do there, but we’re still busy trying to fix the fires in the first place)
  • tell them to report these issues to the plugin developers. In each of these cases here (napari-allencell-segmenter, napari-autolign, and stardist-napari), I would say that the more appropriate place to open an issue and help out is at the respective plugin page, and not so much at napari. I suspect in all three of those cases there, the respective plugins would have been able to tell you why their plugin failed to install in your case. (though, granted, it may have taken some trouble shooting before they realized that you had a conda install and the installer was using pip)… so perhaps just remember that the builtin plugin installer, for now, is always pip.
  • give them some hope that, in a while, we may well be able to distribute a bundle (like anaconda did) that has a lot of the common things all working together (though, of course, that too will have issues when a plugin wants to depend on something newer/older than the “endorsed” bundle).

I’m sad that I have to ask for this again and again, but are there [online] resources for people who are not so familiar with command line and stuff?

I really wish I had a go-to resource for you… but I suspect most of the devs here would tell you that they learned this gradually, by doing, and googling, and asking for help in forums

I perfectly understand that this is no napari issue but rather a pip or conda issue, but to end-users, it appears like a napari issue and thus, I believe the napari community could do a great job here in guiding the folks who don’t understand what’s going on when pip fails (including myself).

yep, I’m worried about this impression as well. I’d just keep going back to the concerns I listed at https://github.com/chanzuckerberg/napari-hub/discussions/299#discussioncomment-1528734. Personally, if I had my druthers, this would all be going slower. We need people like you (i.e. people who other people are pinging on image.sc for advice) to either understand this stuff or say “I’m really not sure, maybe a napari dev knows?”…

I would also request that you avoid putting things like “seriously, don’t use pip here, at least on Windows” in your readme. People are going to look at that and say “Robert is an expert here! I should do that”… They certainly aren’t going to assume that it’s just because you had installed something into your local base conda environment that was messing things up.

It would be nice to close this topic in favor of some more granular “tasks”.

I’m +1 here. We can leave it another 24 hours for folks on different timezones to respond. But i feel like I might need to butcher Dostoevsky here - “All happy plugins are alike; each unhappy plugins is unhappy in its own way” - so getting more granular feels like the way to go

thanks you for writing that up @jaimergp … I’m sure it will be helpful!

Agreed. Most of these things are bad interactions between conda and pip, which transcends what napari can do for its users. The good part of reproducing them with a conda environment is that all the dependencies can be supplied with conda even if the plugins are installed with pip. The bad part is that this is not easy to automate because (a) pip dependencies are often not specified statically, but dynamically in the setup.py, so we need to execute the installation to know what conda packages are needed; (b) even if we know the pip packages, thePyPI names do not always correspond 1:1 to conda’s.

As I am typing this, I think one possible way we could automate this is using grayskull, a tool which helps creating recipes for PyPI packages. It handles some of these quirks but not all of them. We would basically generate a temporary recipe and install those dependencies for the pip package, and cross our fingers. It could work but I also anticipate fragile scenarios and weird errors. Maybe an option in the Plugin manager, like “pre-process installation with grayskull” as a fallback? At least it won’t bonk the conda environment. The problem is that this option is only useful if napari was installed as a conda package to begin with.

I think I like this because it would also be useful in our conda-based future when we have pip-based plugins that haven’t been ported to conda yet.

Thoughts @goanpeca?

Thanks for some great discussion on this issue and a really thoughtful last comment from @tlambert03. I’m going to close this issue now and recommend more granular followups as need in new issues. Thanks again!

It would be nice to close this topic in favor of some more granular “tasks”. Installing plugins doesn’t globally fail on windows (the topic could be called “napari-stardist” install fails in the builtin plugin installer when numpy installed via conda). But there are definitely cases caused by both poor plugin development practice and user environment setup that we could try to make clearer with some documentation, and/or hub help. I agree completely with @jaimergp that in many cases this “transcends what napari can do for its users”.

A potential outcome could be a list of instructions for plugin developers with “does and don’ts” to make the plugin ecosystem and plugin installation more stable. I can just repeat my early offer from when I joined the napari community: I’m happy to serve as tester when it comes to Windows issues. If there is anything I can/should test on one of my Windows machines please let me know.

thanks, we don’t really need “testing” per se, but we do need problem solving/debugging help and we also need documentation. If you wanted to help, but don’t feel ready yet to debug these things, you could open a PR for a dos & don’t’s page listing some of the issues mentioned above, and some of the “gotchas” you’ve recently discovered when building your local environments. See also https://github.com/chanzuckerberg/napari-hub/discussions/333 and https://github.com/chanzuckerberg/napari-hub/discussions/331 for inspiration.

napari-animation napari-aicsimageio napari-allencell-segmenter

The first two here are fine… but napari-allencell-segmenter unfortunately explicitly declares pyqt5 in its requirements. Given that you’ve installed napari via conda, you will have the conda version of Qt (which unfortunately names itself pyqt instead of pyqt5…) and a conflict will result from installing this plugin via pip in the builtin plugin installer.

Plugins should not be installing Qt backends on top of whatever the end-user already has. I opened this issue at the hub for the hub to detect and tell plugin devs not to do that: https://github.com/chanzuckerberg/napari-hub/discussions/333

An end-user that installed napari (and Qt) via conda is probably screwed in this case, since there is no conda package for napari-allencell-segmenter… so they have to install via pip, and it will bonk the environment

We’ll definitely keep looking into this - the more detailed examples should help a lot, thanks for providing them!

how to make a bundle from master

pip install .[bundle_build] python bundle.py