Comments (5)
This only applies for creating a new ipynb file with :JupyniumStartSync
right?
Currently, it will detect the conda environment you're running with CONDA_PREFIX
environment variable and will choose the right kernel for you. Does this workflow not work for you? you'd probably want to activate an environment anyway (for LSPs to work properly) so I thought detecting the current environment makes more sense than parsing the header from Jupytext.
from jupynium.nvim.
This only applies for creating a new ipynb file with :JupyniumStartSync right?
I think so, yes.
Currently, it will detect the conda environment you're running with CONDA_PREFIX environment variable and will choose the right kernel for you. Does this workflow not work for you? you'd probably want to activate an environment anyway (for LSPs to work properly) so I thought detecting the current environment makes more sense than parsing the header from Jupytext.
I don't use conda, but adding support for VIRTUAL_ENV
would indeed fix my issue and make more sense than parsing header from Jupytext. However, for venv
there might be some ambiguity on how to match the environment, as there is no conda_env_path
in the metadata.
My typical workflow is:
- Create virtual environment with
venv
- Register the environment with
python -m ipykernel install --user --name=<envname>
- Most of the time,
<envname>
is what comes directly beforevenv
in the env path (e.g.~/repos/somerepo/venv
would have namesomerepo
. However, for other users with a similar workflow, the name might be different...
I would see 2 ways of getting the proper environment match for such a case:
os.path.basename(os.path.split(conda_env_path)[-2]) == kernel_specs["testjup"]["spec"]["display_name"]
(but someone might register the environment withipykernel
to a completely different name from the parent directory, in which case this fails)kernel_specs["testjup"]["spec"]["argv"][0] == os.path.join(conda_env_path, "bin", kernel_specs["testjup"]["spec"]["language"])
2 seems like the most robust option to me. Also, I kept conda_env_path
in my test code but using a distinct name/mechanism for virtual envs might be best.
I can send a PR implementing something along those lines (or another option if you have a better idea for how to tackle this).
Thanks!
from jupynium.nvim.
I haven't used venv for notebook so I'll need to see how it works. For conda, you just have to install conda install nb_conda_kernels
in the base environment and it will register all environments automatically.
In your solutions, I don't understand why there's conda_env_path
? I thought the solution is for virtual environment?
from jupynium.nvim.
Oh sorry I forgot to mention, the code lines above are from tests I did where local conda_env_path = vim.env.VIRTUAL_ENV
, instead of CONDA_PREFIX
(I kept the variable name the same everywhere in the code to do a quick test).
from jupynium.nvim.
I like the solution 2. Feel free to open a PR, and please add a brief explanation in comments of the detection logic. Also, make sure it will not fail on KeyError and IndexError. If some environment doesn't have such kernelspec just ignore it and move on, defaulting to no action if no matches found. Thank you!
from jupynium.nvim.
Related Issues (20)
- JupiniumStartAndAttachToServer doesn't open Jupyter in Firefox; Jupynium not found but is installed HOT 10
- "Enhancing Neovim's 'LoadFromIpynbTab' for Auto-File Creation in Empty File Openings" HOT 3
- Use Firefox Developer Edition on MacOS
- No action on JupyniumStartAndAttachToServer and "Not an editor command JupyniumExecuteSelectedCells" HOT 1
- Use google colab/kaggle notebooks HOT 2
- Invalid Host header HOT 1
- ..
- no module named jupynium HOT 5
- Attached to remote `nvim` but getting `ERROR - Timed out waiting for page to load` HOT 7
- Starting a second Jupynium instance HOT 1
- Jupynium server stop as long as I save the *.ju.py file HOT 9
- Troubles to use jupynium from a remot machine HOT 9
- Enable default kernel so no needs to use *.ju.* file HOT 5
- On debian 12 ain't working HOT 6
- Refresh line_types cause performance degradation(probably) HOT 3
- JupyniumStartSync RPC channel closed. Stop sending all notifications. And firefox not waking up HOT 39
- Yanking and Pasting into *.ju.py file creates duplicated lines HOT 8
- Write large binary in logs HOT 2
- Package jupynium python library for NixOS distro HOT 1
- Kernel fails to start, resulting in timeout
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jupynium.nvim.