A desktop application for JupyterLab, based on Electron.

Overview

JupyterLab App

A desktop application for JupyterLab, based on Electron.

JupyterLab App

Download

GitHub release (latest by date)

Before installing please read the Python Environment Customization Guide if you plan to customize the Python environment to add new packages.

Build dependencies

  • conda

    You can install conda as part of a Miniforge installer.

  • (conda) Constructor to bundle JupyterLab App Server into the stand-alone application. You can install Constructor using:

    conda install -c conda-forge constructor
  • nodejs

    You can install from https://nodejs.org/en/download/ or run:

    conda install -c conda-forge nodejs
  • yarn

    Install using

    npm install --global yarn

Local development

JupyterLab App bundles JupyterLab front-end and a conda environment as JupyterLab App Server as its backend into an Electron application.

: mac, linux or win

  • Get the project source code

    git clone https://github.com/jupyterlab/jupyterlab_app.git
  • Install dependencies and build JupyterLab App

    yarn
    yarn build
  • Create the JupyterLab App Server installer using

    yarn create_env_installer:<platform>

    Installer will be created in one of env_installer/JupyterLabAppServer -MacOSX-x86_64.sh , env_installer/JupyterLabAppServer- -Linux-x86_64.sh , env_installer/JupyterLabAppServer- -Windows-x86_64.exe based on your platform

  • Run the installer to install the JupyterLab App Server. Make sure to set install location to jlab_server directory that is at the same level as jupyterlab_app project source code

  • Now you can launch the JupyterLab App locally using:

    yarn start

Building for distribution

  • Build the application

    yarn run clean && yarn build
  • Create JupyterLab App Server installer

    yarn create_env_installer:<platform>
  • Create JupyterLab App installer which will also bundle JupyterLab App Server installer.

    yarn dist:<platform>

    App Installer will be created in dist/JupyterLab.pkg (macOS), dist/JupyterLab.deb (Debian, Ubuntu), dist/JupyterLab.rpm (Red Hat, Fedora) and dist/JupyterLab-Setup.exe (Windows) based on the platform

Release Instructions

For instructions on updating bundled JupyterLab packages and cutting a new app release, please follow Release.md document.

Comments
  • Jupyter Server Not Found (executable not in PATH)

    Jupyter Server Not Found (executable not in PATH)

    Description

    When starting jupyterlab_app, I get the message:

    Jupyter Server Not Found We were unable to launch a Jupyter server, which is a prerequisite for JupyterLab Native. If Jupyter is installed as a python module, but the python executable is not in your PATH, specify the executable location below. Otherwise, try installing or updating Jupyter. The Jupyter notebook version must be 4.3.0 or greater.

    Despite a) having a working jupyter-lab installation that I can spin up from the terminal and which appears in the browser, b) having the python executable in my path, and c) having the requisite version of jupyter.

    When I manually point jupyterlab_app to the python executable (/Users/aschuler/.pyenv/shims/python) via the CHOOSE PATH it spins the icon again for a moment and then returns the same "Server Not Found" message.

    Context

    I am running python through pyenv, which may be the issue here. Relevant information:

    [email protected] ~ % pyenv versions
      system
    * 3.9.6 (set by /Users/aschuler/.pyenv/version)
    
    [email protected] ~ % echo $PATH    
    /Users/aschuler/.pyenv/shims:/Applications/Sublime Text.app/Contents/SharedSupport/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/TeX/texbin
    
    [email protected] ~ % jupyter --version
    jupyter core     : 4.7.1
    jupyter-notebook : 6.4.0
    qtconsole        : 5.1.1
    ipython          : 7.26.0
    ipykernel        : 6.0.3
    jupyter client   : 6.1.12
    jupyter lab      : 3.1.13
    nbconvert        : 6.1.0
    ipywidgets       : 7.6.3
    nbformat         : 5.1.3
    traitlets        : 5.0.5
    
    [email protected] ~ % which python
    /Users/aschuler/.pyenv/shims/python
    
    [email protected] ~ % which jupyter-lab
    /Users/aschuler/.pyenv/shims/jupyter-lab
    

    (MK): Extra details from title: jupyterlab_app fails to start on MacOS 11.5.2 with (pyenv issue?)

    bug 
    opened by alejandroschuler 50
  • How do I change which Python is used?

    How do I change which Python is used?

    My apologies if this is not specific to Jupyterlab App.

    in a notebook within Jupyterlab App, when I run:

    import sys
    sys.executable
    

    it returns '/usr/bin/python3'

    I would like it to return '/usr/local/anaconda3/bin/python'

    How do I specify which python Jupyterlab App uses?

    Thank you!

    opened by AndrewChap 32
  • Jupyter Server Not Found with Python 3.6.4 through pyenv

    Jupyter Server Not Found with Python 3.6.4 through pyenv

    Hi, I am able to launch jupyterlab from the command line but unable to do it through the app. I receive:

    We were unable to launch a Jupyter server, which is a prerequisite for JupyterLab Native. If Jupyter is already installed, but it is not in your PATH, specify its location below. Otherwise, try installing or updating Jupyter. The Jupyter notebook version must be 4.3.0 or greater.

    My package versions are the following:

    jupyter==1.0.0
    jupyter-client==5.2.2
    jupyter-console==5.2.0
    jupyter-core==4.4.0
    jupyterlab==0.31.5
    jupyterlab-launcher==0.10.3
    notebook==5.4.0
    

    I use pyenv and jupyterlab is available through the PATH variable (I checked on the cli).

    I am on MacOS 10.13.2 (17C205).

    Thanks, Francesco

    opened by fbrundu 31
  • Apple developer program certificates

    Apple developer program certificates

    Linux and Windows distribution work, but it's hard to distribute apps for MacOS without apple certificates. https://developer.apple.com/programs/

    This is going to require a legally registered entity, I imagine NumFocus

    opened by ddavidebor 23
  • Launcher Error Failed to construct 'IntersectionObserver': rootMargin must be specified in pixels or percent.

    Launcher Error Failed to construct 'IntersectionObserver': rootMargin must be specified in pixels or percent.

    I cannot launch either octave or python kernels. I get this error: Launcher Error Failed to construct 'IntersectionObserver': rootMargin must be specified in pixels or percent.

    image

    To reproduce it, just install JupyterLab_app on Ubuntu 21.04 and start it. Then click the Python 3 launcher.

    \

    Expected behavior

    Context

    This is on Ubuntu 21.04. I have an ordinary jupyter-lab that uses the browser installed too, and it works fine. I used the .deb to install it just now.

    \

    bug 
    opened by frohro 15
  • Upgrade to JupyterLab 3

    Upgrade to JupyterLab 3

    • Upgrades to JupyterLab 3.1.10 version
    • MVP solution for stand-alone and self-contained desktop application for macOS, Debian, Ubuntu, Red Hat, Fedora and Windows with GUI installers for each platform
    • Bundles JupyterLab server using conda constructor and automatically installs the conda environment during app installation. Following conda packages are included in the environment:
      - python 3.8
      - numpy
      - scipy
      - pandas
      - jupyterlab 3.1.10
      - ipywidgets 7.6.4
      - matplotlib
    
    • Some features are removed (remote JupyterLab server connection etc) for now with the initial goal being providing an MVP desktop app

    macOS jlab-mac-install

    jlab-mac

    Ubuntu jlab-ubuntu-install

    jlab-ubuntu

    Fedora jlab-fedora-install

    jlab-fedora

    Windows jlab-windows-install

    jlab-windows

    enhancement 
    opened by mbektas 15
  • Native backend for the settings system

    Native backend for the settings system

    @lucbouchard1 I talked with @blink1073 and @afshin about making sure the keyboard shortcuts and other things continue to work once the new JLab is released. Here is my understanding of the situation:

    • The settings system in jlab is backed by an nbserverextension that has a REST endpoint.
    • We can implement one small interface and replace it with a settings system that uses a native file in the appropriate user's directory.
    • We will need to think a bit more about how to read the defaults for the settings system from the npm packages that provide those defaults.

    We would like to have a JupyterLab Native release by JupyterCon that includes this stuff. Let us know if you have questions.

    opened by ellisonbg 14
  • Packaging on linux

    Packaging on linux

    This PR introduces a way to easily build the application for a Linux environment. Mac and Windows will come as soon as I have more free time (or others wanna help out).

    I still need to test if the icons and menu shortcuts work well on a fresh distro install, the workstation I work with is fairly messed up in this regard.

    But it's a decent start. Mac release coming soon.

    opened by ddavidebor 14
  • fix python path used on createLaunchScript

    fix python path used on createLaunchScript

    I created this pull request as a solution to issue #381 Jupyter Server Initialization Failed.

    After analyzing the logs and the commands used on the processes called to execute the program, I figured that you were using the python of the console instead of the one on the environment, which wasn't allowing the app to launch properly.

    To prevent the usage of the wrong python path I used the one that was stored on the constant pythonPath.

    I also figured that it is being used source env_path\bin\activate to activate all types of environments on Linux desktops, which, if I am not wrong, can be the reason for the problem, since newer versions of Anaconda (and Miniconda) are not using the activate and deactivate binaries by default. I didn't change anything related to this problem (I just left a note comment) because the first solution was able to solve the main problem, however, I believe this needs to be revised.

    opened by anaximeno 11
  • Native macOS menubar

    Native macOS menubar

    On macOS the menubar is missing certain elements which all applications should have.

    1. In particular, the JupyterLab menu is empty (it should contain the default Hide, Quit, Services. etc items, plus Preferences and About).

    2. The Help menu should be tagged as a Help menu so that the search box appears in it.

    3. There should really be an "Edit" menu with standard text-editing commands (Undo, Copy, Paste, etc).

    Additionally (not specific to macOS):

    1. The keyboard shortcuts should be registered to show up in the menus.

    2. The menu items should be enabled and disabled as appropriate.

    3. Some menu items should be checked/unchecked as appropriate.

    I have implemented 1, 2, and 4, and will send pull requests. I could do 3 too.

    I am having more trouble with 5 and 6 as I'm not unfamiliar with the architecture of JupyterLab so I'm not sure where to register listeners for commands being enabled/disabled.

    opened by caesar 11
  • Upgrade to Electron 15

    Upgrade to Electron 15

    Looks like this one will be easy. Electron 15 blog post: https://www.electronjs.org/blog/electron-15-0 We are getting straight to 15.3.4.

    Full changelog for 15.0.0: https://www.electronjs.org/releases/stable?page=3#15.0.0

    Stack:

    • Chromium 93 → 94
    • Node v14.17.0 → v16.5.0
    • V8: v9.3 → v9.4
    opened by krassowski 10
  • Zoom with <kbd>ctrl</kbd> + <kbd>=</kbd> no longer works

    Zoom with ctrl + = no longer works

    The browsers and editors I know that support zoom out with ctrl + - and zoom in with ctrl + + also support ctrl + = for zoom in. Electron does not define a shortcut for the latter. The workaround is to define it manually as suggested in https://github.com/electron/electron/issues/15496.

    We had a shortcut for this but it was removed in f72e0a563e100b6520fdd13d9b3fc3a707241abe. Maybe it could be restored if it does not have side effects.

    bug status:Needs Triage 
    opened by krassowski 0
  • Add dependabot configuraiton

    Add dependabot configuraiton

    Proposing to add dependabot for keeping Electron dependencies up to date. If any package updates are too aggressive we can add more ignore rules or adjust version bumping strategy.

    This does not affect the security updates.

    opened by krassowski 1
  • Bump fast-json-patch from 3.1.0 to 3.1.1

    Bump fast-json-patch from 3.1.0 to 3.1.1

    Bumps fast-json-patch from 3.1.0 to 3.1.1.

    Release notes

    Sourced from fast-json-patch's releases.

    3.1.1

    Security Fix for Prototype Pollution - huntr.dev #262

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies javascript 
    opened by dependabot[bot] 0
  • Can't launch from command line

    Can't launch from command line

    Description

    1. Unable to launch JupyterLab Desktop from the command line. Depending on usage, different errors occur. Namely, command jlab launches a Node.js shell, while jlab /path/to/something returns Error: Cannot find module '/path/to/something'. Full outputs:
    (jlab-test) [email protected]:~$ jlab
    Welcome to Node.js v16.17.1.
    Type ".help" for more information.
    > .exit
    (jlab-test) [email protected]:~$ jlab .
    node:internal/modules/cjs/loader:966
      throw err;
      ^
    
    Error: Cannot find module '/home/$USER'
        at Module._resolveFilename (node:internal/modules/cjs/loader:963:15)
        at Module._load (node:internal/modules/cjs/loader:811:27)
        at f._load (node:electron/js2c/asar_bundle:2:13328)
        at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
        at node:internal/main/run_main_module:17:47 {
      code: 'MODULE_NOT_FOUND',
      requireStack: []
    }
    (jlab-test) [email protected]:~$ jlab Documents/test.ipynb
    /home/$USER/Documents/test.ipynb:2
     "cells": [
            ^
    
    SyntaxError: Unexpected token ':'
        at Object.compileFunction (node:vm:360:18)
        at wrapSafe (node:internal/modules/cjs/loader:1062:15)
        at Module._compile (node:internal/modules/cjs/loader:1097:27)
        at Module._extensions..js (node:internal/modules/cjs/loader:1196:10)
        at Module.load (node:internal/modules/cjs/loader:1011:32)
        at Module._load (node:internal/modules/cjs/loader:846:12)
        at f._load (node:electron/js2c/asar_bundle:2:13328)
        at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
        at node:internal/main/run_main_module:17:47
    
    1. Additionally, jlab --version returns the version of Node.js.

    2. Command jlab --verbose 4 (as indicated for logging purposes here) returns error:

    (jlab-test) [email protected]:~$ jlab --verbose 4
    /opt/JupyterLab/jupyterlab-desktop: bad option: --verbose
    

    Behaviour is the same in base environment and in test environment created as described in https://jupyterlab.readthedocs.io/en/latest/getting_started/issue.html . Exception: command jupyter troubleshoot (outputs under 'Context', below) works as expected in test environment, but returns 'jupyter not found' in base environment.

    Steps to reproduce

    • Run jlab with or without specifying path to directory or notebook (errors should vary as described above).

    OR

    • Run jlab --version.

    Context

    • Operating System and version: Linux Mint 20.3
    • JupyterLab-Desktop version: 3.5.1-1
    • Installer: .deb
    Troubleshoot Output
    $PATH:
    	/home/$USER/.local/bin
    	/home/$USER/bin
    	/home/$USER/.local/bin
    	/home/$USER/miniconda3/envs/jlab-test/bin
    	/home/$USER/.config/jupyterlab-desktop/jlab_server/condabin
    	/home/$USER/.local/bin
    	/home/$USER/bin
    	/usr/local/sbin
    	/usr/local/bin
    	/usr/sbin
    	/usr/bin
    	/sbin
    	/bin
    	/usr/games
    	/usr/local/games
    	/snap/bin
    	/home/$USER/.local/bin
    	/usr/local/texlive/2022/bin/x86_64-linux
    

    sys.path: /home/$USER/miniconda3/envs/jlab-test/bin /home/$USER/miniconda3/envs/jlab-test/lib/python311.zip /home/$USER/miniconda3/envs/jlab-test/lib/python3.11 /home/$USER/miniconda3/envs/jlab-test/lib/python3.11/lib-dynload /home/$USER/miniconda3/envs/jlab-test/lib/python3.11/site-packages

    sys.executable: /home/$USER/miniconda3/envs/jlab-test/bin/python

    sys.version: 5.11.0 | packaged by conda-forge | (main, Oct 25 2022, 06:24:40) [GCC 10.4.0]

    platform.platform(): Linux-5.15.0-56-generic-x86_64-with-glibc2.31

    which -a jupyter: /home/$USER/miniconda3/envs/jlab-test/bin/jupyter

    pip list: Package Version ----------------------------- ----------- anyio 3.6.2 argon2-cffi 21.3.0 argon2-cffi-bindings 21.2.0 asttokens 2.2.1 attrs 22.2.0 Babel 2.11.0 backcall 0.2.0 backports.functools-lru-cache 1.6.4 beautifulsoup4 4.11.1 bleach 5.0.1 brotlipy 0.7.0 certifi 2022.12.7 cffi 1.15.1 charset-normalizer 2.1.1 comm 0.1.2 cryptography 38.0.4 debugpy 1.6.4 decorator 5.1.1 defusedxml 0.7.1 entrypoints 0.4 executing 1.2.0 fastjsonschema 2.16.2 flit_core 3.8.0 idna 3.4 importlib-metadata 5.2.0 importlib-resources 5.10.1 ipykernel 6.19.4 ipython 8.7.0 ipython-genutils 0.2.0 jedi 0.18.2 Jinja2 3.1.2 json5 0.9.5 jsonschema 4.17.3 jupyter_client 7.4.8 jupyter_core 5.1.0 jupyter-events 0.5.0 jupyter_server 2.0.5 jupyter_server_terminals 0.4.3 jupyterlab 3.5.2 jupyterlab-pygments 0.2.2 jupyterlab_server 2.17.0 MarkupSafe 2.1.1 matplotlib-inline 0.1.6 mistune 2.0.4 nbclassic 0.4.8 nbclient 0.7.2 nbconvert 7.2.7 nbformat 5.7.1 nest-asyncio 1.5.6 notebook 6.5.2 notebook_shim 0.2.2 packaging 22.0 pandocfilters 1.5.0 parso 0.8.3 pexpect 4.8.0 pickleshare 0.7.5 pip 22.3.1 pkgutil_resolve_name 1.3.10 platformdirs 2.6.0 prometheus-client 0.15.0 prompt-toolkit 3.0.36 psutil 5.9.4 ptyprocess 0.7.0 pure-eval 0.2.2 pycparser 2.21 Pygments 2.13.0 pyOpenSSL 22.1.0 pyrsistent 0.19.2 PySocks 1.7.1 python-dateutil 2.8.2 python-json-logger 2.0.4 pytz 2022.7 PyYAML 6.0 pyzmq 24.0.1 requests 2.28.1 Send2Trash 1.8.0 setuptools 65.6.3 six 1.16.0 sniffio 1.3.0 soupsieve 2.3.2.post1 stack-data 0.6.2 terminado 0.17.1 tinycss2 1.2.1 tomli 2.0.1 tornado 6.2 traitlets 5.8.0 typing_extensions 4.4.0 urllib3 1.26.13 wcwidth 0.2.5 webencodings 0.5.1 websocket-client 1.4.2 wheel 0.38.4 zipp 3.11.0

    conda list: # packages in environment at /home/$USER/miniconda3/envs/jlab-test: # # Name Version Build Channel _ipython_minor_entry_point 8.7.0 h0c17e10_0 conda-forge _libgcc_mutex 0.1 conda_forge conda-forge _openmp_mutex 4.5 2_gnu conda-forge anyio 3.6.2 pyhd8ed1ab_0 conda-forge argon2-cffi 21.3.0 pyhd8ed1ab_0 conda-forge argon2-cffi-bindings 21.2.0 py311hd4cff14_3 conda-forge asttokens 2.2.1 pyhd8ed1ab_0 conda-forge attrs 22.2.0 pyh71513ae_0 conda-forge babel 2.11.0 pyhd8ed1ab_0 conda-forge backcall 0.2.0 pyh9f0ad1d_0 conda-forge backports 1.0 pyhd8ed1ab_3 conda-forge backports.functools_lru_cache 1.6.4 pyhd8ed1ab_0 conda-forge beautifulsoup4 4.11.1 pyha770c72_0 conda-forge bleach 5.0.1 pyhd8ed1ab_0 conda-forge brotlipy 0.7.0 py311hd4cff14_1005 conda-forge bzip2 1.0.8 h7f98852_4 conda-forge ca-certificates 2022.12.7 ha878542_0 conda-forge certifi 2022.12.7 pyhd8ed1ab_0 conda-forge cffi 1.15.1 py311h409f033_3 conda-forge charset-normalizer 2.1.1 pyhd8ed1ab_0 conda-forge comm 0.1.2 pyhd8ed1ab_0 conda-forge cryptography 38.0.4 py311h42a1071_0 conda-forge debugpy 1.6.4 py311ha362b79_0 conda-forge decorator 5.1.1 pyhd8ed1ab_0 conda-forge defusedxml 0.7.1 pyhd8ed1ab_0 conda-forge entrypoints 0.4 pyhd8ed1ab_0 conda-forge executing 1.2.0 pyhd8ed1ab_0 conda-forge flit-core 3.8.0 pyhd8ed1ab_0 conda-forge idna 3.4 pyhd8ed1ab_0 conda-forge importlib-metadata 5.2.0 pyha770c72_0 conda-forge importlib_resources 5.10.1 pyhd8ed1ab_1 conda-forge ipykernel 6.19.4 pyh210e3f2_0 conda-forge ipython 8.7.0 pyh41d4057_0 conda-forge ipython_genutils 0.2.0 py_1 conda-forge jedi 0.18.2 pyhd8ed1ab_0 conda-forge jinja2 3.1.2 pyhd8ed1ab_1 conda-forge json5 0.9.5 pyh9f0ad1d_0 conda-forge jsonschema 4.17.3 pyhd8ed1ab_0 conda-forge jupyter_client 7.4.8 pyhd8ed1ab_0 conda-forge jupyter_core 5.1.0 py311h38be061_0 conda-forge jupyter_events 0.5.0 pyhd8ed1ab_1 conda-forge jupyter_server 2.0.5 pyhd8ed1ab_1 conda-forge jupyter_server_terminals 0.4.3 pyhd8ed1ab_0 conda-forge jupyterlab 3.5.2 pyhd8ed1ab_0 conda-forge jupyterlab_pygments 0.2.2 pyhd8ed1ab_0 conda-forge jupyterlab_server 2.17.0 pyhd8ed1ab_0 conda-forge ld_impl_linux-64 2.39 hcc3a1bd_1 conda-forge libffi 3.4.2 h7f98852_5 conda-forge libgcc-ng 12.2.0 h65d4601_19 conda-forge libgomp 12.2.0 h65d4601_19 conda-forge libnsl 2.0.0 h7f98852_0 conda-forge libsodium 1.0.18 h36c2ea0_1 conda-forge libsqlite 3.40.0 h753d276_0 conda-forge libstdcxx-ng 12.2.0 h46fd767_19 conda-forge libuuid 2.32.1 h7f98852_1000 conda-forge libzlib 1.2.13 h166bdaf_4 conda-forge markupsafe 2.1.1 py311hd4cff14_2 conda-forge matplotlib-inline 0.1.6 pyhd8ed1ab_0 conda-forge mistune 2.0.4 pyhd8ed1ab_0 conda-forge nbclassic 0.4.8 pyhd8ed1ab_0 conda-forge nbclient 0.7.2 pyhd8ed1ab_0 conda-forge nbconvert 7.2.7 pyhd8ed1ab_0 conda-forge nbconvert-core 7.2.7 pyhd8ed1ab_0 conda-forge nbconvert-pandoc 7.2.7 pyhd8ed1ab_0 conda-forge nbformat 5.7.1 pyhd8ed1ab_0 conda-forge ncurses 6.3 h27087fc_1 conda-forge nest-asyncio 1.5.6 pyhd8ed1ab_0 conda-forge notebook 6.5.2 pyha770c72_1 conda-forge notebook-shim 0.2.2 pyhd8ed1ab_0 conda-forge openssl 3.0.7 h0b41bf4_1 conda-forge packaging 22.0 pyhd8ed1ab_0 conda-forge pandoc 2.19.2 h32600fe_1 conda-forge pandocfilters 1.5.0 pyhd8ed1ab_0 conda-forge parso 0.8.3 pyhd8ed1ab_0 conda-forge pexpect 4.8.0 pyh1a96a4e_2 conda-forge pickleshare 0.7.5 py_1003 conda-forge pip 22.3.1 pyhd8ed1ab_0 conda-forge pkgutil-resolve-name 1.3.10 pyhd8ed1ab_0 conda-forge platformdirs 2.6.0 pyhd8ed1ab_0 conda-forge prometheus_client 0.15.0 pyhd8ed1ab_0 conda-forge prompt-toolkit 3.0.36 pyha770c72_0 conda-forge psutil 5.9.4 py311hd4cff14_0 conda-forge ptyprocess 0.7.0 pyhd3deb0d_0 conda-forge pure_eval 0.2.2 pyhd8ed1ab_0 conda-forge pycparser 2.21 pyhd8ed1ab_0 conda-forge pygments 2.13.0 pyhd8ed1ab_0 conda-forge pyopenssl 22.1.0 pyhd8ed1ab_0 conda-forge pyrsistent 0.19.2 py311hd4cff14_0 conda-forge pysocks 1.7.1 pyha2e5f31_6 conda-forge python 3.11.0 ha86cf86_0_cpython conda-forge python-dateutil 2.8.2 pyhd8ed1ab_0 conda-forge python-fastjsonschema 2.16.2 pyhd8ed1ab_0 conda-forge python-json-logger 2.0.4 pyhd8ed1ab_0 conda-forge python_abi 3.11 3_cp311 conda-forge pytz 2022.7 pyhd8ed1ab_0 conda-forge pyyaml 6.0 py311hd4cff14_5 conda-forge pyzmq 24.0.1 py311ha4b6469_1 conda-forge readline 8.1.2 h0f457ee_0 conda-forge requests 2.28.1 pyhd8ed1ab_1 conda-forge send2trash 1.8.0 pyhd8ed1ab_0 conda-forge setuptools 65.6.3 pyhd8ed1ab_0 conda-forge six 1.16.0 pyh6c4a22f_0 conda-forge sniffio 1.3.0 pyhd8ed1ab_0 conda-forge soupsieve 2.3.2.post1 pyhd8ed1ab_0 conda-forge stack_data 0.6.2 pyhd8ed1ab_0 conda-forge terminado 0.17.1 pyh41d4057_0 conda-forge tinycss2 1.2.1 pyhd8ed1ab_0 conda-forge tk 8.6.12 h27826a3_0 conda-forge tomli 2.0.1 pyhd8ed1ab_0 conda-forge tornado 6.2 py311hd4cff14_1 conda-forge traitlets 5.8.0 pyhd8ed1ab_0 conda-forge typing_extensions 4.4.0 pyha770c72_0 conda-forge tzdata 2022g h191b570_0 conda-forge urllib3 1.26.13 pyhd8ed1ab_0 conda-forge wcwidth 0.2.5 pyh9f0ad1d_2 conda-forge webencodings 0.5.1 py_1 conda-forge websocket-client 1.4.2 pyhd8ed1ab_0 conda-forge wheel 0.38.4 pyhd8ed1ab_0 conda-forge xz 5.2.6 h166bdaf_0 conda-forge yaml 0.2.5 h7f98852_2 conda-forge zeromq 4.3.4 h9c3ff4c_1 conda-forge zipp 3.11.0 pyhd8ed1ab_0 conda-forge

    conda env: name: /home/$USER/miniconda3/envs/jlab-test channels: - conda-forge dependencies: - _ipython_minor_entry_point=8.7.0=h0c17e10_0 - _libgcc_mutex=0.1=conda_forge - _openmp_mutex=4.5=2_gnu - anyio=3.6.2=pyhd8ed1ab_0 - argon2-cffi=21.3.0=pyhd8ed1ab_0 - argon2-cffi-bindings=21.2.0=py311hd4cff14_3 - asttokens=2.2.1=pyhd8ed1ab_0 - attrs=22.2.0=pyh71513ae_0 - babel=2.11.0=pyhd8ed1ab_0 - backcall=0.2.0=pyh9f0ad1d_0 - backports=1.0=pyhd8ed1ab_3 - backports.functools_lru_cache=1.6.4=pyhd8ed1ab_0 - beautifulsoup4=4.11.1=pyha770c72_0 - bleach=5.0.1=pyhd8ed1ab_0 - brotlipy=0.7.0=py311hd4cff14_1005 - bzip2=1.0.8=h7f98852_4 - ca-certificates=2022.12.7=ha878542_0 - certifi=2022.12.7=pyhd8ed1ab_0 - cffi=1.15.1=py311h409f033_3 - charset-normalizer=2.1.1=pyhd8ed1ab_0 - comm=0.1.2=pyhd8ed1ab_0 - cryptography=38.0.4=py311h42a1071_0 - debugpy=1.6.4=py311ha362b79_0 - decorator=5.1.1=pyhd8ed1ab_0 - defusedxml=0.7.1=pyhd8ed1ab_0 - entrypoints=0.4=pyhd8ed1ab_0 - executing=1.2.0=pyhd8ed1ab_0 - flit-core=3.8.0=pyhd8ed1ab_0 - idna=3.4=pyhd8ed1ab_0 - importlib-metadata=5.2.0=pyha770c72_0 - importlib_resources=5.10.1=pyhd8ed1ab_1 - ipykernel=6.19.4=pyh210e3f2_0 - ipython=8.7.0=pyh41d4057_0 - ipython_genutils=0.2.0=py_1 - jedi=0.18.2=pyhd8ed1ab_0 - jinja2=3.1.2=pyhd8ed1ab_1 - json5=0.9.5=pyh9f0ad1d_0 - jsonschema=4.17.3=pyhd8ed1ab_0 - jupyter_client=7.4.8=pyhd8ed1ab_0 - jupyter_core=5.1.0=py311h38be061_0 - jupyter_events=0.5.0=pyhd8ed1ab_1 - jupyter_server=2.0.5=pyhd8ed1ab_1 - jupyter_server_terminals=0.4.3=pyhd8ed1ab_0 - jupyterlab=3.5.2=pyhd8ed1ab_0 - jupyterlab_pygments=0.2.2=pyhd8ed1ab_0 - jupyterlab_server=2.17.0=pyhd8ed1ab_0 - ld_impl_linux-64=2.39=hcc3a1bd_1 - libffi=3.4.2=h7f98852_5 - libgcc-ng=12.2.0=h65d4601_19 - libgomp=12.2.0=h65d4601_19 - libnsl=2.0.0=h7f98852_0 - libsodium=1.0.18=h36c2ea0_1 - libsqlite=3.40.0=h753d276_0 - libstdcxx-ng=12.2.0=h46fd767_19 - libuuid=2.32.1=h7f98852_1000 - libzlib=1.2.13=h166bdaf_4 - markupsafe=2.1.1=py311hd4cff14_2 - matplotlib-inline=0.1.6=pyhd8ed1ab_0 - mistune=2.0.4=pyhd8ed1ab_0 - nbclassic=0.4.8=pyhd8ed1ab_0 - nbclient=0.7.2=pyhd8ed1ab_0 - nbconvert=7.2.7=pyhd8ed1ab_0 - nbconvert-core=7.2.7=pyhd8ed1ab_0 - nbconvert-pandoc=7.2.7=pyhd8ed1ab_0 - nbformat=5.7.1=pyhd8ed1ab_0 - ncurses=6.3=h27087fc_1 - nest-asyncio=1.5.6=pyhd8ed1ab_0 - notebook=6.5.2=pyha770c72_1 - notebook-shim=0.2.2=pyhd8ed1ab_0 - openssl=3.0.7=h0b41bf4_1 - packaging=22.0=pyhd8ed1ab_0 - pandoc=2.19.2=h32600fe_1 - pandocfilters=1.5.0=pyhd8ed1ab_0 - parso=0.8.3=pyhd8ed1ab_0 - pexpect=4.8.0=pyh1a96a4e_2 - pickleshare=0.7.5=py_1003 - pip=22.3.1=pyhd8ed1ab_0 - pkgutil-resolve-name=1.3.10=pyhd8ed1ab_0 - platformdirs=2.6.0=pyhd8ed1ab_0 - prometheus_client=0.15.0=pyhd8ed1ab_0 - prompt-toolkit=3.0.36=pyha770c72_0 - psutil=5.9.4=py311hd4cff14_0 - ptyprocess=0.7.0=pyhd3deb0d_0 - pure_eval=0.2.2=pyhd8ed1ab_0 - pycparser=2.21=pyhd8ed1ab_0 - pygments=2.13.0=pyhd8ed1ab_0 - pyopenssl=22.1.0=pyhd8ed1ab_0 - pyrsistent=0.19.2=py311hd4cff14_0 - pysocks=1.7.1=pyha2e5f31_6 - python=3.11.0=ha86cf86_0_cpython - python-dateutil=2.8.2=pyhd8ed1ab_0 - python-fastjsonschema=2.16.2=pyhd8ed1ab_0 - python-json-logger=2.0.4=pyhd8ed1ab_0 - python_abi=3.11=3_cp311 - pytz=2022.7=pyhd8ed1ab_0 - pyyaml=6.0=py311hd4cff14_5 - pyzmq=24.0.1=py311ha4b6469_1 - readline=8.1.2=h0f457ee_0 - requests=2.28.1=pyhd8ed1ab_1 - send2trash=1.8.0=pyhd8ed1ab_0 - setuptools=65.6.3=pyhd8ed1ab_0 - six=1.16.0=pyh6c4a22f_0 - sniffio=1.3.0=pyhd8ed1ab_0 - soupsieve=2.3.2.post1=pyhd8ed1ab_0 - stack_data=0.6.2=pyhd8ed1ab_0 - terminado=0.17.1=pyh41d4057_0 - tinycss2=1.2.1=pyhd8ed1ab_0 - tk=8.6.12=h27826a3_0 - tomli=2.0.1=pyhd8ed1ab_0 - tornado=6.2=py311hd4cff14_1 - traitlets=5.8.0=pyhd8ed1ab_0 - typing_extensions=4.4.0=pyha770c72_0 - tzdata=2022g=h191b570_0 - urllib3=1.26.13=pyhd8ed1ab_0 - wcwidth=0.2.5=pyh9f0ad1d_2 - webencodings=0.5.1=py_1 - websocket-client=1.4.2=pyhd8ed1ab_0 - wheel=0.38.4=pyhd8ed1ab_0 - xz=5.2.6=h166bdaf_0 - yaml=0.2.5=h7f98852_2 - zeromq=4.3.4=h9c3ff4c_1 - zipp=3.11.0=pyhd8ed1ab_0 prefix: /home/$USER/miniconda3/envs/jlab-test

    Logs See item 3 under 'Description', above.

    bug 
    opened by AJSchiller 4
  • Rewrite with Welcome Page and session history

    Rewrite with Welcome Page and session history

    • [x] Architectural redesign
    • [x] Separate app state and settings. Introduce workspace (working directory) settings
    • [x] Welcome Page
    • [x] Open notebook / folder from UI
    • [x] Recent session list and ability to reopen
    • [x] News feed from Jupyter Blog
    • [x] Close session and open new without relaunch
    • [x] Default Python env and working directory in Preferences dialog. Default working directory now configurable in UI
    • [x] Remote server URL history and autocomplete in UI
    • [x] User configurable startup modes: Welcome Page, New Local Session, Restore Last Session
    • [x] Cleaner, prettified JSON config files
    • [x] Drag - drop support on Welcome Page
    • [x] CLI with pythonPath and working directory options
    • [ ] List and connect to existing local servers
    • [ ] More user friendly Python env selection on UI using popup. New env applied without app restart. Existing environments are discovered and listed as options
    • [ ] Progress view and better server launch error handling
    opened by mbektas 0
  • Julia widgets not working

    Julia widgets not working

    Description

    The widgets provided by Julia's Interact package cannot be displayed in output cells.

    Reproduce

    This is an example of a @manipulate slider which doesn't work with my Jupyterlab desktop installation:

    using Plots
    using Interact
    
    u(x, t) = 1/2 * (sin(x + t) - sin(t - x))
    
    x = 1:0.01:5
    @manipulate for tᵢ in 0:0.1:1
        y = [u(x[i], tᵢ) for i in 1:length(x)]
        plot(x, y)
    end
    

    In the output cell only a plot can be seen, but the slider doesn't show up. No error messages are thrown by the Julia kernel.

    Context

    • Operating System and version: Manjaro Linux
    • JupyterLab-Desktop version: 3.5.0
    • Installer: AUR
    • WebIO extension installed with pip
    bug status:Needs Triage 
    opened by HTofi 0
Releases(v3.5.1-1)
Owner
JupyterLab
JupyterLab: The Next Generation UI for Project Jupyter
JupyterLab
Learn to build a Python Desktop GUI app using pywebview, Python, JavaScript, HTML, & CSS.

Python Desktop App Learn how to make a desktop GUI application using Python, JavaScript, HTML, & CSS all thanks to pywebview. pywebview is essentially

Coding For Entrepreneurs 55 Jan 05, 2023
Use NixOS Without Coding

(Work in Progress) Nix-Gui Make NixOS usable for non-technical users through a settings / package management GUI. Motives The declarative nature of Ni

548 Dec 30, 2022
Yasb is a highly configurable and hackable taskbar written in python with Qt6.

Yasb: Yet Another Status Bar Yasb is a highly configurable and hackable taskbar written in python with Qt6. This project is still in (very) early deve

Dan 355 Jan 01, 2023
Gmail account using brute force attack

Programmed in Python | PySimpleGUI Gmail Hack Python script with PySimpleGUI for hack gmail account using brute force attack If you like it give it

Adrijan 127 Dec 30, 2022
A lightweight file-copying interface.

autosort A lightweight file-copying interface. Preview What is autosort? Autosort is a lightweight file-copying interface. It allows you to copy sever

32 Jan 02, 2023
A really minimalistic operating system made using python's GUI module Tkinter.

BoxOS V1.0.0 About A really minimalistic operating system made using python's GUI module Tkinter. What seperates it from the other operating systems m

Fahim 2 Dec 08, 2022
A Minimalistic Backup GUI for your Windows, Mac or Linux

BlobBackup is a minimalistic backup utility for your Windows, Mac or Linux computer. With an excellent engine, extensive storage support, and an easy

283 Nov 30, 2022
Bill Cipher is a Python3 Tkinter Application that creates Python remote backdoors, while giving you the option to convert it to an exe.

Bill Cipher is a Python3 Tkinter Application that creates Python remote backdoors, while giving you the option to convert it to an exe. The program also configures a .py server file that works with t

Damian Mostert 2 Apr 12, 2022
pyglet is a cross-platform windowing and multimedia library for Python, for developing games and other visually rich applications.

pyglet pyglet is a cross-platform windowing and multimedia library for Python, intended for developing games and other visually rich applications. It

1.3k Jan 01, 2023
A system tray application written in python that will assist you with your keyboard endeavors.

A system tray application written in python that will assist you with your keyboard endeavors. It has features such as abbreviation, email autofill, media control, writing from clipboard ,typing curr

Mach50 1 Dec 15, 2021
Write interactive web app in script way.

PyWebIO Write interactive web app in script way. [Document] | [Demos] | [Why PyWebIO?] English | 中文 PyWebIO provides a series of imperative functions

PyWebIO 3.6k Dec 31, 2022
Transparent & click through tkinter window. WINDOWS ONLY

REQUIREMENTS: WINDOWS ONLY pip install pywin32 NOTES: Will not work on top of a fullscreen application, if you are using this to draw on top of a gam

francis 2 Nov 04, 2022
GlobalProtectGUI is a simple tray app to connect, disconnect and monitor globalprotect VPN connection.

Simple GlobalProtectGUI GlobalProtectGUI is simple tray app to connect, disconnect and monitor globalprotect VPN connection. Installation Required bef

Aleksandar Dostic 11 Oct 07, 2022
AppQuickLauncher is a tool that can quickly launch apps by clicking the app tray icon.

AppQuickLauncher AppQuickLauncher is a tool that can quickly launch apps by clicking the app tray icon. On Windows 7 or Windows 10, we can add a folde

yin kaisheng 2 Sep 11, 2022
Declarative User Interfaces for Python

Welcome to Enaml Enaml is a programming language and framework for creating professional-quality user interfaces with minimal effort. What you get A d

1.4k Jan 07, 2023
Plantasia, all your plants and muchrooms in one place!

Plantasia Project Description Tkinter GUI to be used as a repository for plants and muchrooms. It helps to optimize the search for species that have h

Marco Rodrigues 1 Dec 23, 2021
Create custom desktop notificatons using python

Create custom desktop notificatons using python In this video i am going to use a module called plyer

Niranjan 2 Dec 15, 2021
Weather-API-GUI-Tkinter - A weather tool made using tkinter which works by fetching query city weather using an API

Weather-API-GUI-Tkinter ☁️ ❄️ version- 1️⃣ . 0️⃣ . 0️⃣ This repo contains a weat

SasiVatsal 4 Jul 08, 2022
GUI to enable user selection of measurement and station in kHTConnector module.

kHTGui GUI to enable user selection of measurement and station in kHTConnector module. Helper tool for PowerBI users If you're planning to import data

kk 1 Jan 26, 2022