Python IDEs and learning?

I need to learn Python to modify some genetics calculation code and rewrite some old FORTRAN code that solves linear equations.

I’m looking for an IDE that I can use to manage the projects that will interface with GitLab and GitHub and isn’t too hard to learn.

I already use Android Studio which is IntelliJ based and am considering using PyCharm.

Any comments, suggestions or other choices I should consider?

Any particularly good learning tools you all recommend?

Oh and I have a deadline of learning Python well enough to get a demo running by 24 October, just to add to the problem. :open_mouth:

2 Likes

There was a post some time ago on Erica Sadun’s website about how to get Python working in Xcode.

I suggest JupyterLab. I have it running as a client on my MBP.

Installation is not as easy as uncorking a bottle (e.g. not as easy as downloading and running an installer package). The up-side is that you can run your code in a Web-browser UI, and you can document the code with Markup.

Here is a snapshot of a demo that I use to teach the basics of creating a python code with interactive widgets (I do not claim to be an expert in python coding).

When you are so inclined, contact me off-line. While it has been a while since I’ve gone through the installation, I can probably recall enough to talk you past the pitfalls of one method or another (primarily pip versus homebrew).


JJW

2 Likes

I should also mention that the resulting Python programs have to run on Mac OS, Linux, Windows, and also ideally iPAD iOS, Android and ChromeOS on ChromeBooks.

I think that eliminates Xcode as an option. If I’m wrong please let me know.

Pycharm is fantastic. Jetbrains products I think are excellent for learning. They have one of the best auto-fill for method calls/templates for loops, functions, etc.

What IDE you write in does not effect it’s ability to run on an OS. It just needs to have python installed. For iPadOS you’ll need pythonista installed and to make sure you’re not using modules that don’t come preinstalled with pythonista

Seconding JupyterLab. Really awesome for learning/note taking alongside code.

2 Likes

I agree, PyCharm is an excellent choice for learning. The Edu editions come with lots of built in tutorials and it’s free.

2 Likes

PyCharm is good, although I never used it much with Git. Pythonista is good but can’t run Pandas module which is pretty essential for data analysis.

Technically, you could use stash to install any python module (distributed through pip) but it gets complicated quickly.

For a learning environment I really like https://coderunnerapp.com/ (code runner 3). Gives you the ability to play at a pretty low cost. It’s also simple to set up and use.

Agree with others about PyCharm for production development.

1 Like

Microsoft visual studio code for MacOS has a Python extension

https://visualstudio.microsoft.com/python-at-microsoft/

2 Likes

In my opinion, for sure get Anaconda running to create the virtual environments to run your Python, FORTRAN, and easy access to using Jupyter. Avoid temptation of installing Python direct into your Mac OS. The OS relies on Python for a lot of stuff and you run risk of either breaking that, or making it impossible to install other Python libraries. You’ll discover a huge collection of extremely valuable Python libraries, and using Anaconda will introduce you automatically to the best of the best.

I tend not use the IDE’s that much, instead doing all the heavy editing work with Sublime Text, which has good interfaces with Git (running locally for me mostly, but I also replicate to Bitbucket).

If you are looking for a full featured Python IDE, PyCharm is probably the best choice. That being said it is heavy weight being a full featured IDE. For something more than a generic editor and less than full blown IDE, I would recommend Visual Studio Code with the Python extension installed in it (written by Microsoft). I work on both the Mac and Windows and like that VSC gives me a consistent environment between the two OSs.

With your ANdroid Studio experience, I think PyCharm would still be a good choice for you.

I leaned Python for the O’Reilly Learning Python book (2nd edition). The older editions were excellent but I don’t recommend it any more because the later editions have grown too large and I think intimating for a beginner.

A lot of people recommend Learn Python: freeCodeCamp Python Crash Course. I haven’t watched it, but it has an excellent reputation.

A good all encompassing free PDF is the Python® Notes for Professionals book.

1 Like

I use a more recent edition of Learning Python (1650 pages!) as a base when I want to raise my iPad stand. So it does still have a use for me. I agree that it’s not the best place to start (especially when you have a deadline).

There’s quite a bit of introductory documentation at python.org including what I’m told is the well-regarded The Python Tutorial.

If you’re just learning Python, you shouldn’t bog yourself down with also learning a new IDE. Use whatever code editor you’re already familiar with. Once you learn Python, then you can experiment with the IDEs.

1 Like

I went ahead and downloaded and installed it just to see what it was like. It’s actually very much like Android Studio, so much that I felt pretty comfortable with it from the get go. Working my way through some exercises and looking at the code for the projects I need to work on within it.

My only coding is from within the Android Studio IDE or by hand creation of SQLite Queries I run in a Firefox extension that has been deprecated. So I don’t really have any experience with just a standard code editor.

So far the biggest issue I have with Python are the extreme formatting rules. They make a lot of sense in the long run but Java is relatively free form and the last time I had to deal with a position dependent language it was FORTRAN on punch cards! I haven’t had to modify the FORTRAN code I am working with so I’d sort of forgotten all that stuff. Part of the issue is that I’m having to bounce between Java, FORTRAN and Python and get myself confused at times.

I’ve had good success with courses from udemy, and Mike X. Cohen.

https://www.udemy.com/course/math-with-python

Also, there may be Python libraries that do what your existing FORTRAN code does.
For instance, numpy.

You could also post on Twitter and tag @SciPyTip.

This is why I think it’s important for beginners to use something like pycharm or visual studio code as they both come with a linter to catch those pesky formatting rules before your program runs.

1 Like

PyCharm is what you’re looking. They have free version, it’s enough for most of the work you’ll be doing. The other option – Visual Studio Code with Python extension.

I use both. PyCharm for much longer. I prefer PyCharm, because I never spent enough time configuring VSCode for 100% python workflow.

The equations are to calculate Estimated Breeding Values based on measuring phenotypic characteristics, combined with heritabilities and correlations of those traits to estimate genetic merit of individuals for important commercial traits. The code I am using in FORTRAN does basically use the equivalent of Numpy sorts of routines. Numpy is already used in most of the Python stuff that is close but not quite there.

1 Like

That bugged me too the first time I used Python. At least Python doesn’t have card sequence numbers.

2 Likes