spyder-ide / qtawesome

Iconic fonts in PyQt and PySide applications

Home Page:https://qtawesome.readthedocs.io/en/latest/index.html

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PermissionError: [WinError 5] Access is denied

zariiii9003 opened this issue · comments

I installed spyder in a fresh environment, but qtawesome raises an exception on spyder startup. Please take a look at the traceback.
Why does it try to delete files that it does not own?

It calls os.remove('C:\\Users\\USERNAME\\AppData\\Local\\Microsoft\\Windows\\Fonts\\codicon.ttf')

Traceback
(spyder-env) C:\Users\USERNAME>spyder
fromIccProfile: failed minimal tag size sanity
Traceback (most recent call last):
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\Scripts\spyder-script.py", line 10, in <module>
    sys.exit(main())
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\app\start.py", line 257, in main
    mainwindow.main(options, args)
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\app\mainwindow.py", line 1823, in main
    mainwindow = create_window(MainWindow, app, splash, options, args)
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\app\utils.py", line 289, in create_window
    main.setup()
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\app\mainwindow.py", line 732, in setup
    internal_plugins = find_internal_plugins()
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\app\find_plugins.py", line 40, in find_internal_plugins
    mod = importlib.import_module(entry_point.module_name)
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 883, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\plugins\pylint\plugin.py", line 22, in <module>
    from spyder.plugins.pylint.confpage import PylintConfigPage
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\plugins\pylint\confpage.py", line 16, in <module>
    from spyder.plugins.pylint.main_widget import (MAX_HISTORY_ENTRIES,
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\plugins\pylint\main_widget.py", line 90, in <module>
    class CategoryItem(QTreeWidgetItem):
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\plugins\pylint\main_widget.py", line 102, in CategoryItem
    'icon': ima.icon("convention")
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\spyder\utils\icon_manager.py", line 434, in icon
    qta.load_font('spyder', 'spyder.ttf', 'spyder-charmap.json',
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\qtawesome\__init__.py", line 280, in load_font
    return _instance().load_font(prefix, ttf_filename, charmap_filename, directory)
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\qtawesome\__init__.py", line 130, in _instance
    _resource['iconic'] = IconicFont(*_BUNDLED_FONTS)
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\qtawesome\iconic_font.py", line 338, in __init__
    self.load_font(*fargs)
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\qtawesome\iconic_font.py", line 374, in load_font
    directory = self._get_fonts_directory()
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\qtawesome\iconic_font.py", line 593, in _get_fonts_directory
    fonts_directory = self._install_fonts(fonts_directory)
  File "C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env\lib\site-packages\qtawesome\iconic_font.py", line 629, in _install_fonts
    os.remove(dst_path)
PermissionError: [WinError 5] Access is denied: 'C:\\Users\\USERNAME\\AppData\\Local\\Microsoft\\Windows\\Fonts\\codicon.ttf'
Package List
(spyder-env) C:\Users\USERNAME>mamba list
# packages in environment at C:\Users\USERNAME\AppData\Local\mambaforge\envs\spyder-env:
#
# Name                    Version                   Build  Channel
alabaster                 0.7.13             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
appdirs                   1.4.4                    pypi_0    pypi
arrow                     1.2.3              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
asammdf                   7.1.0           py310he2412df_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
astroid                   2.15.4          py310h5588dad_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
asttokens                 2.2.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
atomicwrites              1.4.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
attrs                     23.1.0             pyh71513ae_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
autopep8                  2.0.2              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
babel                     2.12.1             pyhd8ed1ab_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
backcall                  0.2.0              pyh9f0ad1d_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
backports                 1.0                pyhd8ed1ab_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
backports.functools_lru_cache 1.6.4              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
bcrypt                    3.2.2           py310h8d17308_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
beautifulsoup4            4.12.2             pyha770c72_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
binaryornot               0.4.4                      py_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
black                     23.3.0          py310h5588dad_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
bleach                    6.0.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
brotli                    1.0.9                hcfcfb64_8    https://my-on-premise-mirror.com/conda_forge-conda-remote
brotli-bin                1.0.9                hcfcfb64_8    https://my-on-premise-mirror.com/conda_forge-conda-remote
brotlipy                  0.7.0           py310h8d17308_1005    https://my-on-premise-mirror.com/conda_forge-conda-remote
bzip2                     1.0.8                h8ffe710_4    https://my-on-premise-mirror.com/conda_forge-conda-remote
ca-certificates           2023.5.7             h56e8100_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
canmatrix                 0.9.5              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
certifi                   2023.5.7           pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
cffi                      1.15.1          py310h628cb3f_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
chardet                   5.1.0           py310h5588dad_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
charset-normalizer        3.1.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
click                     8.1.3           win_pyhd8ed1ab_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
cloudpickle               2.2.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
colorama                  0.4.6              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
comm                      0.1.3              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
contourpy                 1.0.7           py310h232114e_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
cookiecutter              2.1.1              pyh6c4a22f_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
cryptography              40.0.2          py310h6e82f81_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
cycler                    0.11.0             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
debugpy                   1.6.7           py310h00ffb61_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
decorator                 5.1.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
defusedxml                0.7.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
diff-match-patch          20230430           pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
dill                      0.3.6              pyhd8ed1ab_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
docstring-to-markdown     0.12               pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
docutils                  0.20            py310h5588dad_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
elementpath               4.1.2                    pypi_0    pypi
entrypoints               0.4                pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
executing                 1.2.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
flake8                    6.0.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
fonttools                 4.39.4          py310h8d17308_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
freetype                  2.12.1               h546665d_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
future                    0.18.3             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
gettext                   0.21.1               h5728263_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
glib                      2.76.2               h12be248_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
glib-tools                2.76.2               h12be248_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
gst-plugins-base          1.22.0               h001b923_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
gstreamer                 1.22.0               h6b5321d_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
icu                       72.1                 h63175ca_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
idna                      3.4                pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
imagesize                 1.4.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
importlib-metadata        6.6.0              pyha770c72_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
importlib_metadata        6.6.0                hd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
importlib_resources       5.12.0             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
inflection                0.5.1              pyh9f0ad1d_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
intel-openmp              2023.1.0         h57928b3_46319    https://my-on-premise-mirror.com/conda_forge-conda-remote
intervaltree              3.1.0              pyhd8ed1ab_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
ipykernel                 6.23.0             pyh025b116_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
ipython                   8.13.2             pyh08f2357_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
ipython_genutils          0.2.0                      py_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
isa-l                     2.30.0               h8ffe710_4    https://my-on-premise-mirror.com/conda_forge-conda-remote
isort                     5.12.0             pyhd8ed1ab_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
jaraco.classes            3.2.3              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
jedi                      0.18.2             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
jellyfish                 0.9.0           py310h8d17308_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
jinja2                    3.1.2              pyhd8ed1ab_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
jinja2-time               0.2.0              pyhd8ed1ab_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
jsonschema                4.17.3             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
jupyter_client            8.2.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
jupyter_core              5.3.0           py310h5588dad_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
jupyterlab_pygments       0.2.2              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
keyring                   23.13.1         py310h5588dad_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
kiwisolver                1.4.4           py310h232114e_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
krb5                      1.20.1               heb0366b_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
lazy-object-proxy         1.9.0           py310h8d17308_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
lcms2                     2.15                 h3e3b177_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
lerc                      4.0.0                h63175ca_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libblas                   3.9.0              16_win64_mkl    https://my-on-premise-mirror.com/conda_forge-conda-remote
libbrotlicommon           1.0.9                hcfcfb64_8    https://my-on-premise-mirror.com/conda_forge-conda-remote
libbrotlidec              1.0.9                hcfcfb64_8    https://my-on-premise-mirror.com/conda_forge-conda-remote
libbrotlienc              1.0.9                hcfcfb64_8    https://my-on-premise-mirror.com/conda_forge-conda-remote
libcblas                  3.9.0              16_win64_mkl    https://my-on-premise-mirror.com/conda_forge-conda-remote
libclang                  16.0.3          default_h8b4101f_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libclang13                16.0.3          default_h45d3cf4_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libdeflate                1.18                 hcfcfb64_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libffi                    3.4.2                h8ffe710_5    https://my-on-premise-mirror.com/conda_forge-conda-remote
libglib                   2.76.2               he8f3873_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libhwloc                  2.9.1                h51c2c0f_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libiconv                  1.17                 h8ffe710_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libjpeg-turbo             2.1.5.1              hcfcfb64_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
liblapack                 3.9.0              16_win64_mkl    https://my-on-premise-mirror.com/conda_forge-conda-remote
libogg                    1.3.4                h8ffe710_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
libpng                    1.6.39               h19919ed_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libsodium                 1.0.18               h8d14728_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
libspatialindex           1.9.3                h39d44d4_4    https://my-on-premise-mirror.com/conda_forge-conda-remote
libsqlite                 3.41.2               hcfcfb64_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
libtiff                   4.5.0                h6c8260b_6    https://my-on-premise-mirror.com/conda_forge-conda-remote
libvorbis                 1.3.7                h0e60522_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libwebp                   1.3.0                hcfcfb64_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libwebp-base              1.3.0                hcfcfb64_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libxcb                    1.13              hcd874cb_1004    https://my-on-premise-mirror.com/conda_forge-conda-remote
libxml2                   2.10.4               hc3477c8_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libxslt                   1.1.37               h0192164_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
libzlib                   1.2.13               hcfcfb64_4    https://my-on-premise-mirror.com/conda_forge-conda-remote
llvmlite                  0.39.1          py310hb84602e_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
lxml                      4.9.2           py310hc0e5b84_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
lz4                       4.3.2           py310hbbb2075_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
lz4-c                     1.9.4                hcfcfb64_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
m2w64-gcc-libgfortran     5.3.0                         6    https://my-on-premise-mirror.com/conda_forge-conda-remote
m2w64-gcc-libs            5.3.0                         7    https://my-on-premise-mirror.com/conda_forge-conda-remote
m2w64-gcc-libs-core       5.3.0                         7    https://my-on-premise-mirror.com/conda_forge-conda-remote
m2w64-gmp                 6.1.0                         2    https://my-on-premise-mirror.com/conda_forge-conda-remote
m2w64-libwinpthread-git   5.0.0.4634.697f757               2    https://my-on-premise-mirror.com/conda_forge-conda-remote
markupsafe                2.1.2           py310h8d17308_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
matplotlib                3.7.1           py310h5588dad_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
matplotlib-base           3.7.1           py310h51140c5_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
matplotlib-inline         0.1.6              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
mccabe                    0.7.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
mistune                   2.0.5              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
mkl                       2022.1.0           h6a75c08_874    https://my-on-premise-mirror.com/conda_forge-conda-remote
more-itertools            9.1.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
msys2-conda-epoch         20160418                      1    https://my-on-premise-mirror.com/conda_forge-conda-remote
munkres                   1.1.4              pyh9f0ad1d_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
mypy_extensions           1.0.0              pyha770c72_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
natsort                   8.3.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
nbclient                  0.7.4              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
nbconvert                 7.4.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
nbconvert-core            7.4.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
nbconvert-pandoc          7.4.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
nbformat                  5.8.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
nest-asyncio              1.5.6              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
nptdms                    1.6.2              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
numba                     0.56.4          py310h19bcfe9_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
numexpr                   2.7.3           py310hf5e1058_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
numpy                     1.23.5          py310h4a8f9c9_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
numpydoc                  1.5.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
openjpeg                  2.5.0                ha2aaf27_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
openssl                   3.1.0                hcfcfb64_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
packaging                 23.1               pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pandas                    2.0.1           py310h1c4a608_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
pandoc                    2.19.2               h57928b3_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
pandocfilters             1.5.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
paramiko                  3.1.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
parso                     0.8.3              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pathspec                  0.11.1             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
patsy                     0.5.3              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pcre2                     10.40                h17e33f8_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pexpect                   4.8.0              pyh1a96a4e_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
pickleshare               0.7.5                   py_1003    https://my-on-premise-mirror.com/conda_forge-conda-remote
pillow                    9.5.0           py310h3dcae36_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pip                       23.1.2             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pkgutil-resolve-name      1.3.10             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
platformdirs              3.5.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pluggy                    1.0.0              pyhd8ed1ab_5    https://my-on-premise-mirror.com/conda_forge-conda-remote
ply                       3.11                       py_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
pooch                     1.7.0              pyha770c72_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
prompt-toolkit            3.0.38             pyha770c72_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
prompt_toolkit            3.0.38               hd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
psutil                    5.9.5           py310h8d17308_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pthread-stubs             0.4               hcd874cb_1001    https://my-on-premise-mirror.com/conda_forge-conda-remote
pthreads-win32            2.9.1                hfa6e2cd_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
ptyprocess                0.7.0              pyhd3deb0d_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pure_eval                 0.2.2              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pycodestyle               2.10.0             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pycparser                 2.21               pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pydocstyle                6.3.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyee                      8.2.2                    pypi_0    pypi
pyflakes                  3.0.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pygments                  2.15.1             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pylint                    2.17.4             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pylint-venv               3.0.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyls-spyder               0.4.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pynacl                    1.5.0           py310h635b8f1_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyopenssl                 23.1.1             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyparsing                 3.0.9              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyppeteer                 1.0.2                    pypi_0    pypi
pyqt                      5.15.7          py310h1fd54f2_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyqt5-sip                 12.11.0         py310h00ffb61_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyqtwebengine             5.15.7          py310he49db7d_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyrsistent                0.19.3          py310h8d17308_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pysocks                   1.7.1              pyh0701188_6    https://my-on-premise-mirror.com/conda_forge-conda-remote
python                    3.10.11         h4de0772_0_cpython    https://my-on-premise-mirror.com/conda_forge-conda-remote
python-dateutil           2.8.2              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
python-fastjsonschema     2.16.3             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
python-isal               1.1.0           py310h8d17308_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
python-lsp-black          1.2.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
python-lsp-jsonrpc        1.0.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
python-lsp-server         1.7.2              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
python-lsp-server-base    1.7.2              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
python-slugify            8.0.1              pyhd8ed1ab_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
python-tzdata             2023.3             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
python_abi                3.10                    3_cp310    https://my-on-premise-mirror.com/conda_forge-conda-remote
pytoolconfig              1.2.5              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pytz                      2023.3             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
pywin32                   306                      pypi_0    pypi
pywin32-ctypes            0.2.0           py310h5588dad_1006    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyyaml                    6.0             py310h8d17308_5    https://my-on-premise-mirror.com/conda_forge-conda-remote
pyzmq                     25.0.2          py310hcd737a0_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
qdarkstyle                3.1                pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
qstylizer                 0.2.2              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
qt-main                   5.15.8              h2c8576c_11    https://my-on-premise-mirror.com/conda_forge-conda-remote
qt-webengine              5.15.8               h5b1ea0b_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
qtawesome                 1.2.3              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
qtconsole                 5.4.3              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
qtconsole-base            5.4.3              pyha770c72_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
qtpy                      2.3.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
requests                  2.29.0             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
rope                      1.8.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
rtree                     1.0.1           py310h1cbd46b_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
scipy                     1.10.1          py310h578b7cb_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
seaborn                   0.12.2               hd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
seaborn-base              0.12.2             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
setuptools                67.7.2             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
sip                       6.7.9           py310h00ffb61_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
six                       1.16.0             pyh6c4a22f_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
snowballstemmer           2.2.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
sortedcontainers          2.4.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
soupsieve                 2.3.2.post1        pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
sphinx                    7.0.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
sphinxcontrib-applehelp   1.0.4              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
sphinxcontrib-devhelp     1.0.2                      py_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
sphinxcontrib-htmlhelp    2.0.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
sphinxcontrib-jsmath      1.0.1                      py_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
sphinxcontrib-qthelp      1.0.3                      py_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
sphinxcontrib-serializinghtml 1.1.5              pyhd8ed1ab_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
spyder                    5.4.3           py310h5588dad_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
spyder-kernels            2.4.3           win_pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
stack_data                0.6.2              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
statsmodels               0.14.0          py310h9b08ddd_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
tbb                       2021.9.0             h91493d7_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
text-unidecode            1.3                        py_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
textdistance              4.5.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
three-merge               0.1.1              pyh9f0ad1d_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
tinycss2                  1.2.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
tk                        8.6.12               h8ffe710_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
toml                      0.10.2             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
tomli                     2.0.1              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
tomlkit                   0.11.8             pyha770c72_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
tornado                   6.3             py310h8d17308_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
tqdm                      4.65.0                   pypi_0    pypi
traitlets                 5.9.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
typing                    3.10.0.0           pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
typing-extensions         4.5.0                hd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
typing_extensions         4.5.0              pyha770c72_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
tzdata                    2023c                h71feb2d_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
ucrt                      10.0.22621.0         h57928b3_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
ujson                     5.7.0           py310h00ffb61_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
unicodedata2              15.0.0          py310h8d17308_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
unidecode                 1.3.6              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
urllib3                   1.26.15            pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
vc                        14.3                hb25d44b_16    https://my-on-premise-mirror.com/conda_forge-conda-remote
vc14_runtime              14.34.31931         h5081d32_16    https://my-on-premise-mirror.com/conda_forge-conda-remote
vs2015_runtime            14.34.31931         hed1258a_16    https://my-on-premise-mirror.com/conda_forge-conda-remote
watchdog                  3.0.0           py310h5588dad_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
wcwidth                   0.2.6              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
webencodings              0.5.1                      py_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
websockets                10.4                     pypi_0    pypi
whatthepatch              1.0.5              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
wheel                     0.40.0             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
win_inet_pton             1.1.0              pyhd8ed1ab_6    https://my-on-premise-mirror.com/conda_forge-conda-remote
wrapt                     1.15.0          py310h8d17308_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
xlrd                      2.0.1              pyhd8ed1ab_3    https://my-on-premise-mirror.com/conda_forge-conda-remote
xlsxwriter                3.1.0              pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
xlwt                      1.3.0                      py_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
xmlschema                 2.2.3                    pypi_0    pypi
xorg-libxau               1.0.9                hcd874cb_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
xorg-libxdmcp             1.1.3                hcd874cb_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
xsdata                    22.12                    pypi_0    pypi
xz                        5.2.6                h8d14728_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
yaml                      0.2.5                h8ffe710_2    https://my-on-premise-mirror.com/conda_forge-conda-remote
yapf                      0.32.0             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
zeromq                    4.3.4                h0e60522_1    https://my-on-premise-mirror.com/conda_forge-conda-remote
zipp                      3.15.0             pyhd8ed1ab_0    https://my-on-premise-mirror.com/conda_forge-conda-remote
zstd                      1.5.2                h12be248_6    https://my-on-premise-mirror.com/conda_forge-conda-remote

Hey @zariiii9003, thanks for reporting. It seems this is caused because at some point you ran Spyder as admin and now it's not possible for it to install some fonts it needs as a non-admin user.

Can you confirm that?

No, that's the first time i installed it on that device. But i just noticed another thing that might be relevant: the device runs on Windows Server 2016 Version 1607

Ok, that could be the issue. This new feature is available for recent versions of Windows 10. However, we'll try to check if QtAwesome is compatible the Windows in which it's installed before trying to install its fonts.

@CAM-Gerlach, you mentioned that you also found this issue in the computer of a person you were trying to help, right?

Thanks for the ping—Yup, this was the same issue. Even though the font file was present in that directory but not actually installed on the system, I was also completely unable to delete it manually even after restarting and also running a special tool to delete files on restart to avoid them being "in use". This was on a nearly brand new user account that the user had just created, though she had installed and then uninstalled Anaconda previous to installing Spyder standalone (but the machine had been restarted in between).

I was going to have IT take a look with admin permissions, but the next day she reported she had fixed it by installing an older version of Spyder (AFAIK, prior to you making the change to fix the font not loading issue I previously reported on another user's machine here), uninstalling that, and then re-installing the latest version.

I can't check now, but I believe that machine was still running Windows 10 Enterprise 1903.

For what it's worth, here's the full traceback on Spyder launch:

Full traceback
Traceback (most recent call last):
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Scripts\spyder-script.py", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\app\start.py", line 257, in main
    mainwindow.main(options, args)
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\app\mainwindow.py", line 1823, in main
    mainwindow = create_window(MainWindow, app, splash, options, args)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\app\utils.py", line 289, in create_window
    main.setup()
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\app\mainwindow.py", line 732, in setup
    internal_plugins = find_internal_plugins()
                       ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\app\find_plugins.py", line 40, in find_internal_plugins
    mod = importlib.import_module(entry_point.module_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\importlib\__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\plugins\pylint\plugin.py", line 22, in <module>
    from spyder.plugins.pylint.confpage import PylintConfigPage
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\plugins\pylint\confpage.py", line 16, in <module>
    from spyder.plugins.pylint.main_widget import (MAX_HISTORY_ENTRIES,
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\plugins\pylint\main_widget.py", line 90, in <module>
    class CategoryItem(QTreeWidgetItem):
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\plugins\pylint\main_widget.py", line 102, in CategoryItem
    'icon': ima.icon("convention")
            ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\spyder\utils\icon_manager.py", line 434, in icon
    qta.load_font('spyder', 'spyder.ttf', 'spyder-charmap.json',
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\qtawesome\__init__.py", line 280, in load_font
    return _instance().load_font(prefix, ttf_filename, charmap_filename, directory)
           ^^^^^^^^^^^
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\qtawesome\__init__.py", line 130, in _instance
    _resource['iconic'] = IconicFont(*_BUNDLED_FONTS)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\qtawesome\iconic_font.py", line 338, in __init__
    self.load_font(*fargs)
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\qtawesome\iconic_font.py", line 374, in load_font
    directory = self._get_fonts_directory()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\qtawesome\iconic_font.py", line 593, in _get_fonts_directory
    fonts_directory = self._install_fonts(fonts_directory)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\kcarmer\AppData\Local\miniforge3\envs\spyderenv\Lib\site-packages\qtawesome\iconic_font.py", line 629, in _install_fonts
    os.remove(dst_path)
PermissionError: [WinError 5] Access is denied: 'C:\\Users\\kcarmer\\AppData\\Local\\Microsoft\\Windows\\Fonts\\materialdesignicons5-webfont.ttf'

According to the QtAwesome code, this situation happens when we're unable to install our fonts for the current user:

if not gdi32.AddFontResourceW(dst_path):
os.remove(dst_path)
raise WindowsError(
f'AddFontResource failed to load "{src_path}"')

So, we could catch the error generated by os.remove but QtAwesome would still raise an error and crash Spyder. And since we're planning to remove the Spyder 2 icon theme in Spyder 6, this is going to be a bigger problem.

One option is to catch the WindowsError above in Spyder (after catching the os.remove one here) and show a dialog to users saying that their Windows version is too old and not compatible with Spyder. By the way, we're already doing something similar but for FontError:

https://github.com/spyder-ide/spyder/blob/21c28ac87cd3d7a02fb6972536a1b752bafeb550/spyder/app/mainwindow.py#L1824-L1831

The other option is to stop using QtAwesome in Spyder, extract all icons that we're grabbing from Material Design and add them to Spyder as SVGs. However, I think that's way too much work for our small team.

@dalthviz, @CAM-Gerlach, what do you think?

I can't check now, but I believe that machine was still running Windows 10 Enterprise 1903.

Could you check again, if possible? This feature was introduced on Windows 10 1803, according to MS docs.

@dalthviz, @CAM-Gerlach, what do you think?

If it was introduced in 1803 and reliably works for everything above that, then while not ideal, it doesn't seem that unreasonable to drop support for Windows versions below that for Spyder 6, since at least by the time it is released later this year, the Windows versions below that will all be EoL for some time, except for Server 2016 (and 1507 and 1607 LTSC, which are very unlikely to have major version desktop software updates anyway). However, we should be sure that it is working reliably first and this issue is resolved.

Could you check again, if possible? This feature was introduced on Windows 10 1803, according to MS docs.

Yeah, it definitely shouldn't be older than that version, but I asked the user to double check and will let you know what I hear. Unfortunately, I can't seem to repro it on my Windows machine to be able to test myself, nor can I actually repro now on that machine after she installed the older Spyder version first then installed the newer version.

@dalthviz, @CAM-Gerlach, what do you think?

I think we should catch the error caused by os.remove as you said but also not raise a WindowsError but some warning saying users that a font was unable to be loaded. Besides that, if an error needs to be raised, it probably should be also a FontError so I guess no change will be needed from the Spyder side of things? 🤔

Besides that, if an error needs to be raised, it probably should be also a FontError so I guess no change will be needed from the Spyder side of things?

Yeah, that's a good idea too, i.e. we could raise FontError so that Spyder can catch it and display the same message we're displaying right now about problems with the QtAwesome fonts.

Since I like it better than my original suggestion, I think we should go with it instead.

Note: This could be happening due to the file being used by the system or some other process so the font is already loaded/being used (maybe we are not properly detecting that with the gdi32.AddFontResourceW(dst_path) call?)

That's a very good point. In that case, we should pass in the try/except around os.remove instead of raising an error.

This is slightly different, but related. I was running qtawesome on two different Python installations (one with qtawesome 1.2.3 and one with qtawesome 1.3.0) (actually, one was a Python app that was packaged to an exe with PyInstaller) and I got a PermissionError on shutil.copy, a few lines above the os.remove. For me, this only happened when one was running and I started the other one, since one version was using the font and the other was trying to update it. I updated the one instance from version 1.2.3 to version 1.3.0 and the problem went away (because the codicon.ttf files were the same), but I suspect it would still be an issue anytime the font files get updated in qtawesome.

For me, it means that I can't run PyInstaller apps that have different versions of qtawesome at the same time, e.g. one that was built with the latest qtawesome and one that was built last week.

Traceback on qtawesome 1.3.0:

Uncaught exception: Traceback (most recent call last):
  File "C:\Users\jlitster\AppData\Local\Programs\Python\Python311\Lib\site-packages\qtawesome\__init__.py", line 234, in icon
    return _instance().icon(*names, **kwargs)
           ^^^^^^^^^^^
  File "C:\Users\jlitster\AppData\Local\Programs\Python\Python311\Lib\site-packages\qtawesome\__init__.py", line 130, in _instance
    _resource['iconic'] = IconicFont(*_BUNDLED_FONTS)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jlitster\AppData\Local\Programs\Python\Python311\Lib\site-packages\qtawesome\iconic_font.py", line 338, in __init__
    self.load_font(*fargs)
  File "C:\Users\jlitster\AppData\Local\Programs\Python\Python311\Lib\site-packages\qtawesome\iconic_font.py", line 374, in load_font
    directory = self._get_fonts_directory()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jlitster\AppData\Local\Programs\Python\Python311\Lib\site-packages\qtawesome\iconic_font.py", line 593, in _get_fonts_directory
    fonts_directory = self._install_fonts(fonts_directory)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\jlitster\AppData\Local\Programs\Python\Python311\Lib\site-packages\qtawesome\iconic_font.py", line 623, in _install_fonts
    shutil.copy(src_path, user_fonts_dir)
  File "C:\Users\jlitster\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 419, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "C:\Users\jlitster\AppData\Local\Programs\Python\Python311\Lib\shutil.py", line 258, in copyfile
    with open(dst, 'wb') as fdst:
         ^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\jlitster\\AppData\\Local\\Microsoft\\Windows\\Fonts\\codicon.ttf'```

Hello, I'm running Windows 10 and installed miniconda.

I opened the anaconda prompt and used this:

conda create -n biopython -c conda-forge biopython spyder mamba
conda activate biopython
spyder

Which causes the error below and spyder fails to open

fromIccProfile: failed minimal tag size sanity
Traceback (most recent call last):
  File "C:\Users\Max\miniconda3\envs\biopython\Scripts\spyder-script.py", line 10, in <module>
    sys.exit(main())
             ^^^^^^
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\app\start.py", line 257, in main
    mainwindow.main(options, args)
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\app\mainwindow.py", line 1847, in main
    mainwindow = create_window(MainWindow, app, splash, options, args)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\app\utils.py", line 289, in create_window
    main.setup()
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\app\mainwindow.py", line 752, in setup
    internal_plugins = find_internal_plugins()
                       ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\app\find_plugins.py", line 40, in find_internal_plugins
    mod = importlib.import_module(entry_point.module_name)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\importlib\__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 994, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\plugins\pylint\plugin.py", line 22, in <module>
    from spyder.plugins.pylint.confpage import PylintConfigPage
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\plugins\pylint\confpage.py", line 16, in <module>
    from spyder.plugins.pylint.main_widget import (MAX_HISTORY_ENTRIES,
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\plugins\pylint\main_widget.py", line 90, in <module>
    class CategoryItem(QTreeWidgetItem):
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\plugins\pylint\main_widget.py", line 102, in CategoryItem
    'icon': ima.icon("convention")
            ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\spyder\utils\icon_manager.py", line 433, in icon
    qta.load_font('spyder', 'spyder.ttf', 'spyder-charmap.json',
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\qtawesome\__init__.py", line 280, in load_font
    return _instance().load_font(prefix, ttf_filename, charmap_filename, directory)
           ^^^^^^^^^^^
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\qtawesome\__init__.py", line 130, in _instance
    _resource['iconic'] = IconicFont(*_BUNDLED_FONTS)
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\qtawesome\iconic_font.py", line 338, in __init__
    self.load_font(*fargs)
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\qtawesome\iconic_font.py", line 374, in load_font
    directory = self._get_fonts_directory()
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\qtawesome\iconic_font.py", line 593, in _get_fonts_directory
    fonts_directory = self._install_fonts(fonts_directory)
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\site-packages\qtawesome\iconic_font.py", line 623, in _install_fonts
    shutil.copy(src_path, user_fonts_dir)
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\shutil.py", line 423, in copy
    copyfile(src, dst, follow_symlinks=follow_symlinks)
  File "C:\Users\Max\miniconda3\envs\biopython\Lib\shutil.py", line 262, in copyfile
    with open(dst, 'wb') as fdst:
         ^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Max\\AppData\\Local\\Microsoft\\Windows\\Fonts\\codicon.ttf'

Hey, just to chime back in. I restarted my system and the problem resolved.

I do still get this error fromIccProfile: failed minimal tag size sanity
But spyder does start successfully anyway.
Weird

I had the same issue on a win 11 machine, one environment with python 3.8, spyder 5.4 loaded spyder without error. Two other environments (python 3.9/spyder 5.4, python 3.10/ spyder 5.5 wouldn't load because of the codicon.ttf error. But now they load after a system restart. Then I started the 3.8/5.4 environment again and it wouldn't load. Just reporting this for your information. Restarting as mentioned by @maximus-sci fixes the issue and is an acceptable solution for me.

Thank you for Spyder!

i had same issue in version 1.3.0 always access denied when i uninstall and install lower version 1.2.3 its working on python 3.10 (win10)

I found the same error
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Ale Campoy\\AppData\\Local\\Microsoft\\Windows\\Fonts\\materialdesignicons6-webfont.ttf'
when trying to execute spyder from a pip venv (I should not use conda and wanted to have spyder notebook). Solution was to delete files codicon.ttf materialdesignicons5-webfont.ttf and materialdesignicons5-webfont.ttf

I had the same issue on a win 11 machine, one environment with python 3.8, spyder 5.4 loaded spyder without error. Two other environments (python 3.9/spyder 5.4, python 3.10/ spyder 5.5 wouldn't load because of the codicon.ttf error. But now they load after a system restart. Then I started the 3.8/5.4 environment again and it wouldn't load. Just reporting this for your information. Restarting as mentioned by @maximus-sci fixes the issue and is an acceptable solution for me.

Thank you for Spyder!

Same issue here. Restarting doesn't help. Looks like I could only open spyder in the first env, the second env it will gives error of permission denied codicon.tff

Same as @jlitster-freeus here, but in my case the two installations had the same qtawesome version (1.3.0). However, qtawesome in the one packaged with PyInstaller was installed with pip and the one in the other installation, a conda environment, was installed from anaconda (conda-forge). I reinstalled qtawesome with pip, and the conflict seems to be resolved. Maybe qtawesome 1.3.0 in anaconda has a different charmap from the pip package?

commented

I have the same. I have a application that i compile with pyinstaller. Some Windows 2022 (Version: 21h2) Terminalservers copies it to a local folder, and RDP-Terminalusers run it from there. Sometimes when a user starts the app he gets:

Traceback (most recent call last):
  File "main.py", line 88, in <module>
  File "model\resources.py", line 68, in get_icons
  File "qtawesome\__init__.py", line 234, in icon
  File "qtawesome\__init__.py", line 130, in _instance
  File "qtawesome\iconic_font.py", line 338, in __init__
  File "qtawesome\iconic_font.py", line 374, in load_font
  File "qtawesome\iconic_font.py", line 593, in _get_fonts_directory
  File "qtawesome\iconic_font.py", line 623, in _install_fonts
  File "shutil.py", line 423, in copy
  File "shutil.py", line 262, in copyfile
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\<username>\\AppData\\Local\\Microsoft\\Windows\\Fonts\\codicon.ttf'

When i go to that folder i can't manual delete the file, cause it's blocked by "system".
The workaround in that case is to logout and login again, that unblocks the file and the app/qtawesome can replace the font file.

Edit: I also happens with 1.2.3, so it's Independent from the qtawesome version. It has to do something with windows versions/changes.

Can confirm that signing in and out of windows fixes the Errno 13 problem. Very strange.

Hey folks, we'll release a new version soon (1.3.1) to try to fix this problem. Hopefully that will solve it for you.