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:
qtawesome/qtawesome/iconic_font.py
Lines 628 to 631 in dc2dfbe
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
:
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?
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.