menuinst
menuinst copied to clipboard
Cannot set Spyder as default application for `.py` files on Linux
Checklist
- [X] I added a descriptive title
- [X] I searched open reports and couldn't find a duplicate
What happened?
Using menuinst
on Ubuntu, I am unable to set python files to open with Spyder.
Right click on a Python file, click "Open With Other Application". Spyder is not available in the application list.
Conda Info
mamba version : 1.5.8
active environment : base
active env location : /home/rclary/miniforge3
shell level : 1
user config file : /home/rclary/.condarc
populated config files : /home/rclary/miniforge3/.condarc
/home/rclary/.condarc
conda version : 24.5.0
conda-build version : not installed
python version : 3.10.12.final.0
solver : libmamba (default)
virtual packages : __archspec=1=skylake
__conda=24.5.0=0
__glibc=2.39=0
__linux=6.8.0=0
__unix=0=0
base environment : /home/rclary/miniforge3 (writable)
conda av data dir : /home/rclary/miniforge3/etc/conda
conda av metadata url : None
channel URLs : file:///home/rclary/.conda/conda-bld/linux-64
file:///home/rclary/.conda/conda-bld/noarch
https://conda.anaconda.org/conda-forge/label/spyder_dev/linux-64
https://conda.anaconda.org/conda-forge/label/spyder_dev/noarch
https://conda.anaconda.org/conda-forge/label/spyder_kernels_rc/linux-64
https://conda.anaconda.org/conda-forge/label/spyder_kernels_rc/noarch
https://conda.anaconda.org/conda-forge/linux-64
https://conda.anaconda.org/conda-forge/noarch
https://repo.anaconda.com/pkgs/main/linux-64
https://repo.anaconda.com/pkgs/main/noarch
https://repo.anaconda.com/pkgs/r/linux-64
https://repo.anaconda.com/pkgs/r/noarch
package cache : /home/rclary/miniforge3/pkgs
/home/rclary/.conda/pkgs
envs directories : /home/rclary/.conda/envs
/home/rclary/miniforge3/envs
platform : linux-64
user-agent : conda/24.5.0 requests/2.31.0 CPython/3.10.12 Linux/6.8.0-36-generic ubuntu/24.04 glibc/2.39 solver/libmamba conda-libmamba-solver/23.12.0 libmambapy/1.5.8
UID:GID : 1000:1000
netrc file : None
offline mode : False
Conda Config
==> /home/rclary/miniforge3/.condarc <==
channels:
- conda-forge
==> /home/rclary/.condarc <==
auto_activate_base: False
envs_dirs:
- ~/.conda/envs
channel_priority: flexible
channels:
- /home/rclary/.conda/conda-bld
- conda-forge/label/spyder_dev
- conda-forge/label/spyder_kernels_rc
- conda-forge
- defaults
show_channel_urls: True
bld_path: /home/rclary/.conda/conda-bld
conda-build:
root-dir: ~/.conda/conda-bld
pkg_format: 2
zstd_compression_level: 19
Conda list
# packages in environment at /home/rclary/miniforge3:
#
# Name Version Build Channel
_libgcc_mutex 0.1 conda_forge conda-forge
_openmp_mutex 4.5 2_gnu conda-forge
archspec 0.2.3 pyhd8ed1ab_0 conda-forge
boltons 23.0.0 pyhd8ed1ab_0 conda-forge
brotli-python 1.1.0 py310hc6cd4ac_0 conda-forge
bzip2 1.0.8 h7f98852_4 conda-forge
c-ares 1.24.0 hd590300_0 conda-forge
ca-certificates 2024.6.2 hbcca054_0 conda-forge
certifi 2024.6.2 pyhd8ed1ab_0 conda-forge
cffi 1.15.1 py310h255011f_3 conda-forge
charset-normalizer 3.2.0 pyhd8ed1ab_0 conda-forge
colorama 0.4.6 pyhd8ed1ab_0 conda-forge
conda 24.5.0 py310hff52083_0 conda-forge
conda-libmamba-solver 23.12.0 pyhd8ed1ab_0 conda-forge
conda-package-handling 2.2.0 pyh38be061_0 conda-forge
conda-package-streaming 0.9.0 pyhd8ed1ab_0 conda-forge
cryptography 41.0.3 py310h75e40e8_0 conda-forge
distro 1.9.0 pyhd8ed1ab_0 conda-forge
fmt 10.2.1 h00ab1b0_0 conda-forge
frozendict 2.4.4 py310hc51659f_0 conda-forge
icu 73.2 h59595ed_0 conda-forge
idna 3.4 pyhd8ed1ab_0 conda-forge
jsonpatch 1.32 pyhd8ed1ab_0 conda-forge
jsonpointer 2.0 py_0 conda-forge
keyutils 1.6.1 h166bdaf_0 conda-forge
krb5 1.21.2 h659d440_0 conda-forge
ld_impl_linux-64 2.40 h41732ed_0 conda-forge
libarchive 3.7.2 h2aa1ff5_1 conda-forge
libcurl 8.7.1 hca28451_0 conda-forge
libedit 3.1.20191231 he28a2e2_2 conda-forge
libev 4.33 h516909a_1 conda-forge
libffi 3.4.2 h7f98852_5 conda-forge
libgcc-ng 13.1.0 he5830b7_0 conda-forge
libgomp 13.1.0 he5830b7_0 conda-forge
libiconv 1.17 h166bdaf_0 conda-forge
libmamba 1.5.8 had39da4_0 conda-forge
libmambapy 1.5.8 py310h39ff949_0 conda-forge
libnghttp2 1.58.0 h47da74e_1 conda-forge
libnsl 2.0.0 h7f98852_0 conda-forge
libsolv 0.7.24 hfc55251_3 conda-forge
libsqlite 3.43.0 h2797004_0 conda-forge
libssh2 1.11.0 h0841786_0 conda-forge
libstdcxx-ng 13.1.0 hfd8a6a1_0 conda-forge
libuuid 2.38.1 h0b41bf4_0 conda-forge
libxml2 2.12.3 h232c23b_0 conda-forge
libzlib 1.2.13 hd590300_5 conda-forge
lz4-c 1.9.4 hcb278e6_0 conda-forge
lzo 2.10 h516909a_1000 conda-forge
mamba 1.5.8 py310h51d5547_0 conda-forge
menuinst 2.0.1 py310hff52083_0 conda-forge
ncurses 6.4 hcb278e6_0 conda-forge
openssl 3.3.1 h4ab18f5_1 conda-forge
packaging 23.1 pyhd8ed1ab_0 conda-forge
pip 23.2.1 pyhd8ed1ab_0 conda-forge
platformdirs 4.1.0 pyhd8ed1ab_0 conda-forge
pluggy 1.3.0 pyhd8ed1ab_0 conda-forge
pybind11-abi 4 hd8ed1ab_3 conda-forge
pycosat 0.6.4 py310h5764c6d_1 conda-forge
pycparser 2.21 pyhd8ed1ab_0 conda-forge
pyopenssl 23.2.0 pyhd8ed1ab_1 conda-forge
pysocks 1.7.1 pyha2e5f31_6 conda-forge
python 3.10.12 hd12c33a_0_cpython conda-forge
python_abi 3.10 3_cp310 conda-forge
readline 8.2 h8228510_1 conda-forge
reproc 14.2.4 h0b41bf4_0 conda-forge
reproc-cpp 14.2.4 hcb278e6_0 conda-forge
requests 2.31.0 pyhd8ed1ab_0 conda-forge
ruamel.yaml 0.17.32 py310h2372a71_0 conda-forge
ruamel.yaml.clib 0.2.7 py310h1fa729e_1 conda-forge
setuptools 68.1.2 pyhd8ed1ab_0 conda-forge
tk 8.6.12 h27826a3_0 conda-forge
toolz 0.12.0 pyhd8ed1ab_0 conda-forge
tqdm 4.66.1 pyhd8ed1ab_0 conda-forge
truststore 0.8.0 pyhd8ed1ab_0 conda-forge
tzdata 2023c h71feb2d_0 conda-forge
urllib3 2.0.4 pyhd8ed1ab_0 conda-forge
wheel 0.41.2 pyhd8ed1ab_0 conda-forge
xz 5.2.6 h166bdaf_0 conda-forge
yaml-cpp 0.8.0 h59595ed_0 conda-forge
zstandard 0.19.0 py310h5764c6d_0 conda-forge
zstd 1.5.5 hfc55251_0 conda-forge
Additional Context
spyder-menu.json
{
"$schema": "https://json-schema.org/draft-07/schema",
"$id": "https://schemas.conda.io/menuinst-1.schema.json",
"menu_name": "{{ DISTRIBUTION_NAME }} spyder",
"menu_items": [
{
"name": {
"target_environment_is_base": "Spyder 6 ({{ DISTRIBUTION_NAME }})",
"target_environment_is_not_base": "Spyder 6 ({{ ENV_NAME }})"
},
"description": "Scientific PYthon Development EnviRonment",
"icon": "{{ MENU_DIR }}/spyder.{{ ICON_EXT }}",
"activate": false,
"terminal": false,
"command": [""],
"platforms": {
"win": {
"desktop": true,
"app_user_model_id": "spyder.Spyder",
"command": ["{{ PREFIX }}/pythonw.exe", "{{ PREFIX }}/Scripts/spyder-script.py", "%*"],
"file_extensions": [
".bat",
".c",
".cc",
".cfg",
".cl",
".cmd",
".cpp",
".css",
".cxx",
".desktop",
".diff",
".enaml",
".f",
".f03",
".f08",
".f2k",
".f77",
".f90",
".f95",
".for",
".h",
".hh",
".hpp",
".htm",
".html",
".hxx",
".inf",
".ini",
".ipy",
".ipynb",
".jl",
".js",
".json",
".m",
".md",
".nsh",
".nsi",
".patch",
".po",
".pot",
".pro",
".properties",
".pxd",
".pxi",
".py",
".pyw",
".pyx",
".reg",
".rej",
".rst",
".scss",
".session",
".txt",
".xml",
".yaml",
".yml"
]
},
"linux": {
"Categories": [
"Development",
"Science"
],
"command": ["{{ PREFIX }}/bin/spyder", "$@"],
"StartupWMClass": "Spyder",
"MimeType": [
"text/x-script.python",
"text/plain",
"text/html",
"text/xml",
"text/x-c",
"text/x-perl"
]
},
"osx": {
"precommand": "pushd \"$(dirname \"$0\")\" &>/dev/null",
"command": ["./python", "{{ PREFIX }}/bin/spyder", "$@"],
"link_in_bundle": {
"{{ PREFIX }}/bin/python": "{{ MENU_ITEM_LOCATION }}/Contents/MacOS/python"
},
"CFBundleName": "Spyder 6",
"CFBundleIdentifier": "org.spyder-ide.Spyder",
"CFBundleVersion": "6.0.0b3.dev8",
"CFBundleDocumentTypes": [
{
"CFBundleTypeName": "text document",
"CFBundleTypeRole": "Editor",
"LSHandlerRank": "Default",
"CFBundleTypeIconFile": "spyder.icns",
"LSItemContentTypes": [
"com.apple.applescript.text",
"com.apple.ascii-property-list",
"com.apple.audio-unit-preset",
"com.apple.binary-property-list",
"com.apple.configprofile",
"com.apple.crashreport",
"com.apple.dashcode.css",
"com.apple.dashcode.javascript",
"com.apple.dashcode.json",
"com.apple.dashcode.manifest",
"com.apple.dt.document.ascii-property-list",
"com.apple.dt.document.script-suite-property-list",
"com.apple.dt.document.script-terminology-property-list",
"com.apple.property-list",
"com.apple.rez-source",
"com.apple.scripting-definition",
"com.apple.structured-text",
"com.apple.traditional-mac-plain-text",
"com.apple.xcode.ada-source",
"com.apple.xcode.apinotes",
"com.apple.xcode.bash-script",
"com.apple.xcode.configsettings",
"com.apple.xcode.csh-script",
"com.apple.xcode.entitlements-property-list",
"com.apple.xcode.fortran-source",
"com.apple.xcode.glsl-source",
"com.apple.xcode.ksh-script",
"com.apple.xcode.lex-source",
"com.apple.xcode.make-script",
"com.apple.xcode.mig-source",
"com.apple.xcode.pascal-source",
"com.apple.xcode.strings-text",
"com.apple.xcode.tcsh-script",
"com.apple.xcode.yacc-source",
"com.apple.xcode.zsh-script",
"com.apple.xml-property-list",
"com.netscape.javascript-source",
"com.scenarist.closed-caption",
"com.sun.java-source",
"com.sun.java-web-start",
"net.daringfireball.markdown",
"org.khronos.glsl-source",
"org.oasis-open.xliff",
"public.ada-source",
"public.assembly-source",
"public.bash-script",
"public.c-header",
"public.c-plus-plus-header",
"public.c-plus-plus-source",
"public.c-source",
"public.case-insensitive-text",
"public.comma-separated-values-text",
"public.csh-script",
"public.css",
"public.delimited-values-text",
"public.dylan-source",
"public.filename-extension",
"public.fortran-77-source",
"public.fortran-90-source",
"public.fortran-95-source",
"public.fortran-source",
"public.html",
"public.json",
"public.ksh-script",
"public.lex-source",
"public.log",
"public.m3u-playlist",
"public.make-source",
"public.mig-source",
"public.mime-type",
"public.module-map",
"public.nasm-assembly-source",
"public.objective-c-plus-plus-source",
"public.objective-c-source",
"public.opencl-source",
"public.pascal-source",
"public.patch-file",
"public.perl-script",
"public.php-script",
"public.plain-text",
"public.python-script",
"public.rss",
"public.ruby-script",
"public.script",
"public.shell-script",
"public.source-code",
"public.tcsh-script",
"public.text",
"public.utf16-external-plain-text",
"public.utf16-plain-text",
"public.utf8-plain-text",
"public.utf8-tab-separated-values-text",
"public.xhtml",
"public.xml",
"public.yacc-source",
"public.yaml",
"public.zsh-script"
]
}
]
}
}
}
]
}
python -c "import menuinst; menuinst.api.install('/home/rclary/.conda/envs/spy6b3d8/Menu/spyder-menu.json', base_prefix='/home/rclary/miniforge3', target_prefix='/home/rclary/.conda/envs/spy6b3d8')"