this post was submitted on 03 Dec 2023
17 points (94.7% liked)

Linux

47341 readers
1212 users here now

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 5 years ago
MODERATORS
 

How do you all handle this? I'm going to start poking around with NixOS but anticipate Python dev to be impossible on the base OS, so curious what sorts of options y'all use when connecting your configured editor to a container- e.g. if I have Neovim configured in my host, is it better to re-set-up Neovim again with the same dotfiles in the container and dev in the container, or connect the editor to the container somehow?

My gut is saying it's probably cleaner to set up an editor inside the container, just not sure I want to do that every time I start a project.

top 6 comments
sorted by: hot top controversial new old
[–] [email protected] 8 points 9 months ago (1 children)

you should have no problem doing Python dev on nixos, it's basically made for doing development environments like this without the need for containers. you should just be able to set up a nix shell for your project that contains python and all the necessary dependencies, and then enter the shell. then, you'll have all the right dependencies installed for your project and still have access to any editors you have installed

[–] [email protected] 4 points 9 months ago

I'd also check out poetry2nix if you're a poetry fan and interested in building your package with nix. See https://www.tweag.io/blog/2020-08-12-poetry2nix/.

[–] [email protected] 3 points 9 months ago

Python is easy on NixOS, you just need to use python venvs and you can use pip like normal

(python -m venv .venv) to create the venv (only need to do once per project)

.venv/bin/activate to enable the venv (Vscode should do this automatically if you create the venv through the python extension)

Then just pip install to your heart's content

(Probably a good idea to pip freeze > requirements.txt every time you install a new library too to make it reproducible

Also you should probably add the venv directory to gitignore if you're using git as it'll add a lot of crap to source control that can be easily regenerated from the requirements.txt

[–] [email protected] 2 points 9 months ago

Use Nix expressions or flakes for that - just copy a simple example of default.nix or shell.nix from a git host and tweak it to your liking. Personally, I am not a fan of how Nix handles Python, and still can't get used to how Python packages have to be included in expressions, so I create a temporary virtual environment for the time-being.

[–] [email protected] 2 points 9 months ago

In my experience, you still have your same path to your nix installed binaries in the distribox container, so you shouldnt even have to duplicate your configuration. I also dont suspect python dev to be that bad so long as you use venv or conda.

[–] [email protected] -1 points 9 months ago* (last edited 9 months ago)

Neovim is not a CLI editor, it is a TUI editor. If you want a CLI editor, use ed or ex.