Windows based python dev thinking switching to Linux

Associate
Joined
24 Jul 2009
Posts
846
Location
Lost in Alps
Hey fellas,

Been using my main windows 10 pc last year for Python dev for uni stuff and self learning. This pc also used for other productivity and education stuff with ms office.

Of course with the python and machine learning stuff I’m doing I think it would be good for my skill set to learn Linux command line, scripting and generally work in a Linux environment if I can. What distro would you guys recommend to try Ubuntu, Fedora?

To safeguard the windows install I’m thinking of buying additional SSD just for the Linux env - Make sense? Thanks for advice to this Linux newbie, cheers
 
Last edited:
Associate
Joined
29 Apr 2012
Posts
120
Location
Sevenoaks
Hi grumpybeard,

I'd suggest using a Debain based distro like Ubuntu, or Linux Mint, to start with.

What I tend to do when dual booting a machine is have a separate drive like you mentioned - when doing the install I unplug the Windows SSD, install Linux onto the second SSD, then plug the Windows one back in and use the BIOS boot options to choose what to run on startup. You can have a boot manager handle things and it generally works fine, but I've had issues in the past with the Windows boot getting trashed so like to keep the two environments completely separate. It also keeps things simple if you decide you don't want to stick with running both - you can just wipe the Linux SSD for example and revert to just running Windows.

Another, simpler, option to consider is playing around with the WSL in Windows 10 - this lets you run a Linux shell within Windows. It'll give you access to Linux command line tools without having to install a full environment. I've used both approaches (my work is infrastructure / devops type stuff, mainly revolving around databases) and while the WSL does have some limitations, for Python development and scripting it's not too bad. It's also quite nice to use as a native ssh client into headless VMs - I use Hyper-V running CentOS with the Ubuntu WSL as my client shell. Some things I just can't do within the WSL so a VM is needed.

The other option is just use a VM to run a full Linux desktop under Windows.

It all depends on what you're trying to learn. If you want to get accustomed to the shell, do some scripting etc, then the WSL is probably a good first step. If you want to play with different desktop environments and mess around with a full Linux environment you could just start with a VM. From what you've said, I'm not sure you need to set up a dual boot environment...
 
Associate
OP
Joined
24 Jul 2009
Posts
846
Location
Lost in Alps
Hey Mastodon, thanks a lot for the input, appreciate your time to that that and sounds like all good suggestions.

I really would like to protect the windows install, as it has a lot of stuff setup for sim racing and would be a pita to redo.

I’ve been playing with elasticstack (elasticksearch, Logstash, Kibana), hosted in cloud, but might want to play with local install. Also interested in looking at some devops stuff including docker and kubernetes. All on top of machine learning where I need to extract max possible perf from pc and so was thinking that native explicit Linux install best? As I’d like to upgrade hardware to max cores available (threadripper or see what zen 2 brings this summer) also thinking Linux install best to make best use.

I have no probs with buying additional dedicated ssd and switching between os at boot. What do you think? Cheers :)
 
Associate
Joined
29 Apr 2012
Posts
120
Location
Sevenoaks
Well, if performance is a consideration then it'd make sense to do a native install and not mess with VMs. And while you can mess around with containers inside a VM it's not going to perform as well.

As I mentioned, it depends on what you want to do. From the sounds of it you'll benefit from just going straight to a full installation on a separate SSD.

I'm partial to Mint. At the end of the day it doesn't really matter that much - you can run whatever desktop environment (e.g. Cinnamon) you like on top of Ubuntu. Maybe download a few distros and run them from live USB sticks to get a feel for each before you decide which one to start with.

If you think you'll ever run Steam on Linux, then it's recommended to stick with Ubuntu or a derivative like Mint.

Good luck!
 
Soldato
Joined
18 May 2010
Posts
22,371
Location
London
I've settled on Fedora.

They will all do a similar job. Pick what ever you like.

Ubuntu 18.10 was unstable on both my PC's. (One AMD rig and one Intel/Nvidia)

Fedora no issues.

Haven't tried Mint but admit it does look nice.

---

Maybe give Mint a go first.
 
Soldato
Joined
18 Oct 2002
Posts
18,296
Location
Brighton
Or maybe try the more stable LTS 18.04 :)

I would just use virtualbox, that way you can try out all the things with very minimal effort as opposed to a separate HDD or dual booting.
 
Soldato
Joined
1 Nov 2007
Posts
5,600
Location
England
I do all of my Python development work on Linux, but I'm the opposite. I run Linux in a VMWare Workstation Pro 15 virtual machine and leave Windows 10 as my primary day to day operating systems. Having said that I do run a few Linux servers in the cloud, so I'm pretty comfortable with Linux. If you want any advice, then I can help you get set up in Linux.

I play games and use Microsoft Office which is why I keep Windows 10 hanging around. Another option is to use Windows Subsystem for Linux which basically installs a Linux distribution you can use from the Windows 10 PowerShell or Command Prompt.
 
Associate
OP
Joined
24 Jul 2009
Posts
846
Location
Lost in Alps
Really appreciate an oversight of your env for python dev @Cromulent. I’m working towards taking my Python dev into new work opportunities, so want to be working with Unix to get experience on how it could be in real working env, doing python alongside elasticsearch cluster and some devops. For example could setup mint as my personal work env and have another Linux install with red hat/suse to emulate some server side.

You got me thinking on Vm workstation. I imagine this is paid for. Easy enough to setup a mint vm for example?
 
Soldato
Joined
1 Nov 2007
Posts
5,600
Location
England
You got me thinking on Vm workstation. I imagine this is paid for. Easy enough to setup a mint vm for example?

Yes. You need to pay for VMWare Workstation Pro but you can use Virtualbox instead which is free but I find Workstation Pro is better for heavy use but you could use Virtualbox just to get up and running for free.

https://www.virtualbox.org/

VMWare Workstation Pro is very easy to use and is pretty fast which is why I pay for it but don't worry. If you start out with Virtualbox and then later decide to get Workstation Pro you can import your virtual machines with no real hassle.
 
Associate
OP
Joined
24 Jul 2009
Posts
846
Location
Lost in Alps
Ok I’m starting to be convinced on doing things the VM way, especially if I want to be emulating client - server environments then I can just be running multiple VMs. Strengthens the justification for a many core lots of ram new build :)

Edit: hoping my 5820k with 16gb can cut it for 2 vms for now!
 
Man of Honour
Joined
19 Oct 2002
Posts
29,516
Location
Surrey
If you're just wanting to learn then I also suggest a VM. If you find you prefer Linux then I would go down the route of a separate SSD and switching the boot order in the BIOS.
 
Soldato
Joined
25 Jun 2011
Posts
5,468
Location
Yorkshire and proud of it!
Hey fellas,

Been using my main windows 10 pc last year for Python dev for uni stuff and self learning. This pc also used for other productivity and education stuff with ms office.

Of course with the python and machine learning stuff I’m doing I think it would be good for my skill set to learn Linux command line, scripting and generally work in a Linux environment if I can. What distro would you guys recommend to try Ubuntu, Fedora?

To safeguard the windows install I’m thinking of buying additional SSD just for the Linux env - Make sense? Thanks for advice to this Linux newbie, cheers

I run into Redhat / Fedora / CentOS environments more often in corporate life than I do Debian based ones (Ubuntu, Debian) so that's a factor in which to learn. But frankly, I do think Debian is both superior and easier to learn. My recommendation would be Xubuntu or Mint. Both Ubuntu based but without the godawful UI. 98% of the How-Tos you find for Ubuntu will still apply.

VMs are surprisingly efficient these days, however so yes to buying an SSD to run it off, but I'd recommend installing either VirtualBox or using Windows built-in Hyper-V and running GNU/Linux ON Windows. Windows 10 also includes Ubuntu GNU/Linux built in meaning all you have to do is turn it on in the Windows Features and bang - you have Bash, Linux kernel, etc. You could also use Docker which is probably going to be the most career-helpful. You need to set up Remote Desktop on the machine to connect to it and you might find you spend more time learning Docker than you do GNU/Linux to begin with.

So there are lots of options but if you want one answer, my recommendation is get the SSD because this will really help, then install VirtualBox (it's free and very good), then create a VM on the SSD and install Xubuntu or Centos7. Xubuntu being the one you'll find easiest for sure. Centos being the one you're a little more likely to run into out in the wild. But as a software developer rather than a sysadmin, that shouldn't matter so much.
 
Associate
OP
Joined
24 Jul 2009
Posts
846
Location
Lost in Alps
Great input and help guys, I really appreciate it.

As I'm working towards machine learning and augmented intelligence dev in professional career, and wanting to understand full lifecycle from dev to prod within Linux environment, I decided purchasing VMWare Workstation Pro 15 was an investment. Actually reinstalled W10 on the new SSD NVMe, and using the original SSD SATA for the VMs. Been running Mint VM last few days now in learning the command line with terminal - finding VMWare very easy to get a VM going, and GUI of Mint is rather polished and clean.

@h4rm0ny - great input on enterprise environment, cheers. Indeed, been talking to small software house who build their own AI app with CentOS and Elasticsearch as foundation components. So with VM Mint as my dev environment, I plan to create second VM with CentOS and ELasticsearch, to practice packaging python up for deployment to Prod, looking at sys and security admin etc just for an understanding. Will look at docker next.

Very happy I went with VMs for the solution, makes complete sense and easy to build whatever environments are needed, cheers again fellas.
 
Last edited:
Soldato
Joined
25 Jun 2011
Posts
5,468
Location
Yorkshire and proud of it!
Great input and help guys, I really appreciate it.

As I'm working towards machine learning and augmented intelligence dev in professional career, and wanting to understand full lifecycle from dev to prod within Linux environment, I decided purchasing VMWare Workstation Pro 15 was an investment. Actually reinstalled W10 on the new SSD MVMe, and using the original SSD SATA for the VMs. Been running Mint VM last few days now in learning the command line with terminal - finding VMWare very easy to get a VM going, and GUI of Mint is rather polished and clean.

@h4rm0ny - great input on enterprise environment, cheers. Indeed, been talking to small software house who build their own AI app with CentOS and Elasticsearch as foundation components. So with VM Mint as my dev environment, I plan to create second VM with CentOS and ELasticsearch, to practice packaging python up for deployment to Prod, looking at sys and security admin etc just for an understanding. Will look at docker next.

Very happy I went with VMs for the solution, makes complete sense and easy to build whatever environments are needed, cheers again fellas.

Glad things are working out for you. I imagine you'll find CentOS a bit more of a pain in the arse than Mint. It always seems to be behind in the software packages I actually need. As a sideline to VMs, I'd look at installing Docker on Windows some time and having a play with Containers. It's a little lighter than VMs and a lot of environments are using them now. It can (to an extent) mean you can be a bit more flexible in what OS and software versions you actually want to use. But stick to what you're doing for now - it's the most straightforward approach to learning GNU/Linux.

Also, don't listen to the zealots who are all GNU/Linux == Good, Windows == Bad. Both are amazing pieces of work and Windows has many good features. (Powershell leaves Bash in its dust, for example and ACLs on Windows are light years ahead of those on GNU/Linux). Conversely, a lot of development How To's and tools are written with GNU/Linux in mind.
 
Soldato
Joined
29 Apr 2004
Posts
4,889
Location
Bath
I'd also have a look at KDE Neon. Sorry but KDE has a much nicer and more useful UI if you are going to run Linux for development work!
 
Back
Top Bottom