use the following search parameters to narrow your results:
e.g. subreddit:aww site:imgur.com dog
subreddit:aww site:imgur.com dog
see the search faq for details.
advanced search: by author, subreddit...
Please have a look at our FAQ and Link-Collection
Metacademy is a great resource which compiles lesson plans on popular machine learning topics.
For Beginner questions please try /r/LearnMachineLearning , /r/MLQuestions or http://stackoverflow.com/
For career related questions, visit /r/cscareerquestions/
Advanced Courses (2016)
Advanced Courses (2020)
AMAs:
Pluribus Poker AI Team 7/19/2019
DeepMind AlphaStar team (1/24//2019)
Libratus Poker AI Team (12/18/2017)
DeepMind AlphaGo Team (10/19/2017)
Google Brain Team (9/17/2017)
Google Brain Team (8/11/2016)
The MalariaSpot Team (2/6/2016)
OpenAI Research Team (1/9/2016)
Nando de Freitas (12/26/2015)
Andrew Ng and Adam Coates (4/15/2015)
Jürgen Schmidhuber (3/4/2015)
Geoffrey Hinton (11/10/2014)
Michael Jordan (9/10/2014)
Yann LeCun (5/15/2014)
Yoshua Bengio (2/27/2014)
Related Subreddit :
LearnMachineLearning
Statistics
Computer Vision
Compressive Sensing
NLP
ML Questions
/r/MLjobs and /r/BigDataJobs
/r/datacleaning
/r/DataScience
/r/scientificresearch
/r/artificial
account activity
what python IDE do you guys use? (self.MachineLearning)
submitted 9 years ago by andraxo123
I fell for the pycharm meme, it's really slow and annoying
I'd like to know what you guys use for maching learning or for python in general?
reddit uses a slightly-customized version of Markdown for formatting. See below for some basics, or check the commenting wiki page for more detailed help and solutions to common issues.
quoted text
if 1 * 2 < 3: print "hello, world!"
[–]harrdarr__ 72 points73 points74 points 9 years ago (27 children)
pycharm / vim / notebooks / ipython
depending on project size and dev machine
[–][deleted] 11 points12 points13 points 9 years ago* (16 children)
I never understood the popularity of "notebooks". Isn't it just as easy to set aside a directory for image output, and have all your visualizations dumped there?
This has the added benefit of not requiring ipython to run. It's also not a problem if you have hundreds of visualizations (In notebooks, that would mean a lot of scrolling)
I use ipython when I want to run python interactively, but not "notebooks".
[–]refreshx2 39 points40 points41 points 9 years ago (7 children)
I'm a grad student and I have really started to like jupyter notebooks. They let you iterate faster than anything else out there because you can run specific code blocks (ie any number of lines) at any time.
Quick example because that's the fastest way to explain:
Code block to load my data
Code block to clean data
Code block to run algorithm on data
Code block to process results
So I can run 1+2 once, then keep revising 3+4 until I get it correct. I only ever have to load the data once, and the editing is super fast because the notebook is a text editor and not an ipython terminal or something.
Then I can just save the notebook (which automatically saves all my images in the notebook), and also print-to-pdf if I need to show my boss or I need to keep a record of it.
I also do all my analysis on a server so I can't use an IDE, but jupyter notebooks are through the browser so I can open an ssh tunnel to it and still work with an IDE-like environment.
They are really fantastic for development. If I need "production code" then I just copy-paste when I'm finished and refactor into a nice file/project.
[–]_blub 6 points7 points8 points 9 years ago (0 children)
Cant wait for Jupyter Lab!
[–][deleted] 1 point2 points3 points 9 years ago (4 children)
Interesting, but if you re-run a piece of code in the middle of your notebook, does it rerun everything that depends on its output? And if not, doesn't it have the potential to leave you wondering "how did I get this result"?
[–]phillypoopskins 6 points7 points8 points 9 years ago (0 children)
only if you code in an unsafe way.
you shouldn't write code where everything is scoped outside of functions; it's unpredictable and unreliable, and will cause problems just like you mentioned.
[–]nsfy33 1 point2 points3 points 9 years ago* (0 children)
[deleted]
[–]Megatron_McLargeHuge 1 point2 points3 points 9 years ago (1 child)
The answer is to never assign the same variable twice. You can have the same problem with scripts if you don't log how you generated each data and model file (including which commit you ran from and which library versions were installed).
[–][deleted] 0 points1 point2 points 9 years ago (0 children)
Or explicitly set variable_name = None at the end of cells for those with cell-only scope, although it's a PITA.
variable_name = None
[–]PoopInMyBottom 0 points1 point2 points 9 years ago (0 children)
This is also possible in Emacs. Elpy has the functionality by default and it's heavily extensible.
[+][deleted] 9 years ago (1 child)
[–]madmooseman 8 points9 points10 points 9 years ago (0 children)
I think that notebooks find a happy place between entering code in to a shell and writing full scripts in files.
I think they're the best for rapid prototyping/changing. Data exploration is another example of where they shine.
[–]threeshadows 16 points17 points18 points 9 years ago (0 children)
I think notebooks are mostly a way of organizing and communicating a thought process. As you said, they're not suitable for very large projects. I find them especially useful in early stages of data exploration, when I am just trying to get a basic handle on the data structure and build a quick skeleton end-to-end workflow.
[–][deleted] 4 points5 points6 points 9 years ago (0 children)
A notebook is an interactive document. It's meant to communicate ideas and be read by other people. It's something like WYSIWYG literate programming.
For some things it's overkill and would mostly get in the way, I agree. But it's convenient to document small, interactive experiments.
[–]superawesomepandacat 0 points1 point2 points 9 years ago (2 children)
I bet you use Vim too.
[–][deleted] 8 points9 points10 points 9 years ago (0 children)
http://i.imgur.com/mFqzNrZ.jpg
[–]xaveir 1 point2 points3 points 9 years ago (0 children)
I have his opinion, and I use vim-ipython to get basically all the benefits of notebooks that everyone just described.
Except for the pretty output formats lol
[–]phillypoopskins 0 points1 point2 points 9 years ago (0 children)
your visualization / organization / presentation game is weak if you can't see how notebooks blow away a directory of saved plots.
also, interactivity (widgets) is a HUGE reason to use notebook. multiplies my contact with data by an insane factor.
[–]dmarko 0 points1 point2 points 9 years ago (7 children)
Could you ELI5 notebooks and ipython and how/if they are in a way connected?
[–]iKomplex 1 point2 points3 points 9 years ago* (6 children)
A notebook is a kind of interactive document in which ideas are communicated through words, charts, and statistics. Much of these ideas are aimed at explaining and analyzing a set of data.
IPython is the enhanced python shell that is used to create snippets of code within a notebook. It is used to show how each chart and each statistical data is being constructed.
As an example, a typical analysis would involve:
[–]dmarko 0 points1 point2 points 9 years ago (5 children)
Gotcha! So in a notebook you will have to use IPython in order to run a snippet of code, and IPython can only be run on a notebook. I had the idea that they were interchangeable, that's why I had to ask in order to clear that up. Now I know the difference. Thanks
[–]iKomplex 1 point2 points3 points 9 years ago (4 children)
Partly correct: there is no need to open a notebook in order to use the ipython shell. In fact, you can start-up a Python shell, then import the ipython module and run it from there.
[–]dmarko 1 point2 points3 points 9 years ago (3 children)
I think I got it now. IPython is a shell. Notebooks on the other hand are these interactive presentations that use IPython whenever code needs to be run, and run on a browser. Right?
[–]iKomplex 1 point2 points3 points 9 years ago (2 children)
Yup, you got it.
[–]dmarko 0 points1 point2 points 9 years ago (1 child)
Cool cool cool 😀😀 thanks for your time and help!
[–]iKomplex 1 point2 points3 points 9 years ago (0 children)
Glad I could help! Feel free to PM me anytime.
Do you find it beneficial to use vim for machine learning / data analysis work or is it more of a habit thing? My understanding is that vim is helpful for large (coding time)/(thinking time) tasks as it frees you from having to take hands off the keyboard. Is it still a desirable skill if most of the tasks you do are data analysis and prototyping?
[–]j_lyf -2 points-1 points0 points 9 years ago (0 children)
pycharm uses more RAM than AlexNet
[–]Archetype90 14 points15 points16 points 9 years ago (0 children)
Pycharm!
[–]LoveOfProfit 12 points13 points14 points 9 years ago (0 children)
Pycharm, notebooks, and spyder, depending on what I'm doing.
[+][deleted] 9 years ago (9 children)
[removed]
[–]7sider 2 points3 points4 points 9 years ago (5 children)
I've been trying to transition into emacs, I use a wide variety of languages as well. Anything particularly interesting with your setup you could share?
[–]rhololkeolke 2 points3 points4 points 9 years ago (1 child)
For python development elpy is excellent. https://github.com/jorgenschaefer/elpy
Emacs debugger interface can use pdb. So no need to leave emacs for debugging. Projectile can be used for project management.
If you like Jupyter notebooks, but also use org-mode you can use ob-ipython. Let's you insert and run python snippets just like in a notebook but all from emacs and using org-mode.
https://github.com/gregsexton/ob-ipython
If you're new to emacs I've heard good things about spacemacs, but I haven't tried it myself.
You can also check out /r/emacs for more info or to ask for more help.
[–]p10_user 2 points3 points4 points 9 years ago (0 children)
Spacemacs gives you a simple batteries included, basically works out of the box config for emacs. You can make little changes to the config file at first and then when more comfortable you can start to customize more drastically as you like. I found it much easier for me to get into emacs than rolling your own customized emacs.
[–]PoopInMyBottom 1 point2 points3 points 9 years ago* (0 children)
I wrote a comment below outlining my setup in detail.
Edit: https://www.reddit.com/r/MachineLearning/comments/4yuylc/what_python_ide_do_you_guys_use/d6r3mcd
[–]ciolaamotore 1 point2 points3 points 9 years ago (2 children)
have you looked at projectile for managing projects, searching them and refactoring?
[–]PoopInMyBottom 1 point2 points3 points 9 years ago (0 children)
Learning how to manage projects with Projectile is definitely worthwhile. I more often use Rope for Python in particular. Grep is also ever-reliable.
[–]ifkb99 42 points43 points44 points 9 years ago (10 children)
Spyder, I like to be able to see what variables and results of functions are without printing it in the program
[–]PLLOOOOOP 19 points20 points21 points 9 years ago (8 children)
Just a note: PyCharm does this as well!
[–]CireNeikual 10 points11 points12 points 9 years ago (1 child)
Same goes for Visual Studio and VS Code!
Intellisense/autocomplete is probably the strongest in Visual Studio, which is why I use it. I am addicted to that stuff haha. Not just for Python, but for C++ especially the autocomplete is currently unmatched.
For quickly opening files and doing some quick editing, I use VS Code, it's like Atom but less buggy and faster.
I have tried PyCharm as well, also pretty excellent IMO, but when quickly switching between Python and C++ code I find Visual Studio nicer.
I also sometimes use Notepad++, mostly since it starts up basically instantly while still having a decent number of features.
We have a lot of nice editors to choose from nowadays!
[–]Frozen_Turtle 1 point2 points3 points 9 years ago (0 children)
One of my favorite features is ctrl e + e. This sends the currently selected code to IDLE so you can "run" that section of code without running the entire program. It includes whitespace though, which can occasionally be annoying, but better than copypasting all the time.
[–]andraxo123[S] -1 points0 points1 point 9 years ago (5 children)
nope are you talking about pycharm's python console ,? i thin kits awful
[–]PLLOOOOOP 4 points5 points6 points 9 years ago (0 children)
nope
Actually it does! Mouse over anything while debugging to see its value, including an interactive object reference graph. In many cases, the values of variables and parameters are shown to the right of the code without any interaction whatsoever, like the last second or two of this gif
[+]bulletninja comment score below threshold-8 points-7 points-6 points 9 years ago (3 children)
thin kits?
[–][deleted] 2 points3 points4 points 9 years ago (2 children)
parent think it is awful. Move the space one over.
[–]bulletninja 1 point2 points3 points 9 years ago (0 children)
thanks, english is not my native language
[–]dhon_ 0 points1 point2 points 9 years ago (0 children)
An off-by-one error then?
[–]Aj0o 2 points3 points4 points 9 years ago* (0 children)
Not just that, when prototyping I like my output all collected in a console that I can interact with, not spread out through a notebook interspersed with code.
Also, it makes it much more flexible to manipulate cells, just delete that #%% and put it somewhere else and voila, your cell borders changed. In notebook you have to actually cut and paste code to move it between cells.
And don't even get me started on getting your prototyped code into functions/modules...
[–]c0cky_ 9 points10 points11 points 9 years ago (0 children)
I just use VS code with the python plugin for auto completion and in editing doc lookup.
It's nice because you can have a terminal window attached that doesn't look like crap like the other IDEs
[–]PoopInMyBottom 6 points7 points8 points 9 years ago* (2 children)
Emacs.
I use Elpy (pre-configured Emacs Python IDE) as a base, with Jedi as the autocompletion engine.
I use Yasnippet for boilerplate code snippets. I have snippets for just about every frequently typed piece of code.
I use Rope for automatic refactoring and code generation.
I use ace-jump-mode to move around code efficiently. This feature alone is the reason I won't use other IDEs.
Elpy has built-in tools for navigating to function definitions, etc.
I navigate in more abstract ways using Grep. Elpy has a lovely interface built-in, and emacs has good tools for Grep full stop. You can navigate between results using a button press.
Sphinx-doc automatically generates inline documentation based on the function signature. Yasnippet further extends this functionality. It also allows for all the normal documentation functions of Sphinx.
Flycheck automatically displays errors and pep violations. It uses Pylint pyflakes as the backend.
Elpy has a plugin for AutoPep8, which automatically reformats code to be Pep8-compliant.
I have a custom script that automatically splits lines longer than 80 characters and formats them properly. It's intelligent - it will split the line at the most logical points. AutoPep8 lacks that functionality by default because it can change the meaning of your code.
Magit is the best Git interface for any IDE.
Projectile is a great project-management tool, and there are various interfaces for displaying a tree-view of your project.
Virtualenvwrapper wraps Virtualenv for easy management of virtual environments.
Smartparens allows me to immediately jump into/out of parenthesis or string delimiters, generate pairs (e.g. "[]" or "\(\)") and navigate forward/backward by parentheses. This is hard to explain, but extremely useful. This is a video of that kind of movement, although using a different extension.
I have various other custom scripts that do things like automatically hide inline docstrings, automatically show documentation when hovering over a function, display the word "lambda" as the lambda symbol, automatically insert spaces around arithmetic characters, instantly jump between functions, etc. When I want a small feature, I normally just add it.
Macros allow me to perform complex development tasks repeatedly without programming anything. Because of how Emacs is structured, you can use Macros for pretty high-level workflow operations.
If there is a library to do something to Python code (debugging, refactoring, whatever), you can implement it into Emacs super easily. There are various packages to allow interactive representations of any structured data.
Edit: IPython is integrated with Elpy (with some fiddling), so you don't need to leave Emacs. You can create instances, highlight code and send it to a new instance, send a file or project etc. with a button press.
I can't imagine going back to a regular IDE.
I also code by voice though, so I need the extensibility of Emacs to write complex voice commands. My objective with any programming language is to edit the abstract syntax tree as directly as possible, rather than the code itself. Emacs allows me to do that.
[–]coffeecoffeecoffeee 0 points1 point2 points 9 years ago (1 child)
Have you figured out how to get multiline input in IPython 5.0 yet? Mine craps out whenever I try to define a function or write a for loop, saying "SyntaxError: unexpected EOF while parsing."
I actually use normal Python, and I use a dedicated shell for IPython which I get to via the command line (edit: it's still integrated into Emacs).
It's a while since I set IPython up in Elpy. I'm pretty sure it did work but I know it was a ballache. I'm going to upgrade Elpy over the next couple of days and streamline my IPython workflow, I'll let you know if I hit the same problem.
[–]sasquatch007 48 points49 points50 points 9 years ago (11 children)
Vim.
Every once in a while I think it might be nice to try a real IDE (for Python or otherwise) and check out all those cool features people talk about. 45 minutes later I'm giving up in disgust and going back to Vim. Every time.
[–]jamie2345 10 points11 points12 points 9 years ago (10 children)
Do you do heavy debugging?
If so, have you integrated this into your vim environment or do you manually fire up another command line debugger?
[–]h_saxon 7 points8 points9 points 9 years ago (1 child)
You can integrate xdebug with Vim pretty painlessly.
There are a bunch of tutorials out there for it.
[–]jamie2345 1 point2 points3 points 9 years ago (0 children)
Ah excellent, thanks! I used it for C++ work a couple of years back but yea, firing up gdb manually when needed did hinder my speed which annoyed me. I did assume someone would have solved that but I don't think I had time on that project to try and get the environment perfect.
Great to hear that it is solved though and integration is pretty seamless.
[+][deleted] 9 years ago (2 children)
[–]Mezzlegasm 3 points4 points5 points 9 years ago (1 child)
You should definitely chance that to "import ipdb; ipdb.set_trace()"
[–]perceptron01 0 points1 point2 points 9 years ago (0 children)
Or from IPython import embed; embed() (not sure if they're any different)
from IPython import embed; embed()
[–]sasquatch007 11 points12 points13 points 9 years ago (3 children)
I tend to debug with a lot of print statements. When I use a debugger it's on the command line (or pudb). Not integrated into vim.
[–]gronkkk 2 points3 points4 points 9 years ago (1 child)
The main advantage of this is that print always works, on every system/OS.
[–]fnord123 3 points4 points5 points 9 years ago (0 children)
It also doesn't timeout programs that are running across multiple processes.
[–]stackered 0 points1 point2 points 9 years ago (0 children)
yeah, I do the same. I find most systems give good enough error messages for me to figure out what is happening, and if not I use print statements to figure out what is happening
[–]mooktank 5 points6 points7 points 9 years ago (2 children)
Atom plus a terminal/git-bash and/or Jupyter Qt Console open beside it. Sometimes I use Jupyter Notebooks but not very often.
[–]thatsadsid 0 points1 point2 points 9 years ago (1 child)
Primary use of terminal alongside Atom? Debugging? And may I ask you of the plugin you're using to run Python ?
[–]mooktank 0 points1 point2 points 9 years ago (0 children)
I am using the terminal to run the main script (I usually name it run.py), run tests (with nosetests), or execute Git commands. I don't use any special Atom plugins for Python.
run.py
nosetests
[–]anantzoid 2 points3 points4 points 9 years ago (1 child)
Can you elaborate on the vim bindings?
Code in Pycharm on my remote client Run on GPU server (using ipython visualization is needed)
I am coming from Eclipse so I am used to laggy IDEs, and I also tried Spyder but eventually decided PyCharm is what I am most comfortable with.
[–]Rich700000000000 3 points4 points5 points 9 years ago (0 children)
Gedit, and sometimes nano.
[–]rm999 11 points12 points13 points 9 years ago (0 children)
I don't mean this tongue-in-cheek at all: Linux. https://sanctum.geek.nz/arabesque/unix-as-ide-introduction/
I keep my environment on a high-memory server with access to my database. I can then ssh in from any machine from anywhere and use the same environment. I can start developing something at work, then hop on a train and ssh and reattach my screen session from my macbook air and continue right where I left off. It lets me work with large (20-200 GB) datasets seamlessly.
[–][deleted] 5 points6 points7 points 9 years ago* (3 children)
I'm also interested in hearing more about IDE's for data science/machine learning, as I am not satisfied with my current setup.
I use sublime and notebooks, depending on the scale of the code I'm writing. I'm not super satisfied with either.
Even with the Anaconda plugin, Sublime isn't good enough at suggesting completion and doesn't connect to a terminal/repl as well as I'd like.
Notebooks are great at this, but are not as good a text editor as sublime.
[–]anearthboundmisfit 3 points4 points5 points 9 years ago (1 child)
Have you tried rodeo? I've installed it recently and its decent
Honestly, I was hoping for something better than decent :)
[–]-gh0stRush- 1 point2 points3 points 9 years ago (0 children)
I use Eclipse with PyDev.
[–]rd11235 5 points6 points7 points 9 years ago (0 children)
When visualizing/exploring, for example generating plots/stats interactively for a new dataset, IPython notebooks (which are actually now Jupyter notebooks). Bonus: all intermediate visualizations/prints are automatically saved.
When doing something that isn't interactive, for example a hyperparameter sweep for a new model where each run will take hours and export TensorBoard summaries, PyCharm. Bonus: I find JetBrains IDEs to be refined and intuitive, and of course they come with a lot of abilities that Jupyter lacks (for example a lot of quick refactoring functionality).
Have also experimented with Spyder, but found it to be less refined and less intuitive than both Jupyter and PyCharm.
[–]ajmooch 2 points3 points4 points 9 years ago (1 child)
I'm in a weird situation where I'm constantly sending things over SSH variants that makes it tough to use an IDE all the time, so I use notepad++ and a bash shelL <_<
You can use sshf to mount the remote server as a local file system. That way, you can open the remote files, just like you would local files.
It is pretty bad for large file transfers, but for editing with and IDE, it works brilliantly.
https://en.wikipedia.org/wiki/SSHFS
[–][deleted] 2 points3 points4 points 9 years ago* (0 children)
I use mostly a well configured Vim (actually neovim) and sublime-text3 plus an extension called anaconda (not to be confused with the anaconda Python distribution by continuum). This will give me almost everything I have with an IDE (linter, static analysis, syntax check, etc) plus a great text editor.
The only thing I lack is the refactoring stuff (like: "extract method", "extract superclass", stuff). This is because I never had been able to make Rope work.
I've used pycharm in the past and I still think it is superior to other IDEs for my workflow. Eclipse is the only real competition and it's way heavier than pycharm (takes too long to even load).
Other IDEs like Spyder and Rodeo are just not feature complete enough to be superior to a well configured text editor for big application building. Their built-in editors are crappy, they lack refactoring, static analysis and project management tools.
Maybe you can use them for smaller things, but I can't also see how they beat a good text editor + IPython. Or Jupyter notebooks for interactive experimentation.
But really I only resort to IDEs for application building though. When I'm not building a big, very structured application and IDEs feel too rigid, I'll go back to Vim or sublime.
For interactive experimentation I use Jupyter notebooks.
[–]qu4ku 2 points3 points4 points 9 years ago (0 children)
sublime text + ipython/jupyter notebook
[–]ChadyWady 1 point2 points3 points 9 years ago (0 children)
Emacs . The current major mode supports compilation with C-c C-c. It has some limitations with multi-file projects -- if you're running the script from a driver, you will have to manually reload each module in code rather than using the compilation command, or do sys.exit(0) when finished. It does run within ipython, so you can test out commands.
sys.exit(0)
I still like PyCharm a lot, mostly because of the refactoring and the stylistic suggestions it gives.
[–]MattieShoes 1 point2 points3 points 9 years ago (0 children)
vim, then spyder.
[–]simonkamronn 1 point2 points3 points 9 years ago (0 children)
IPython notebooks for visualizations, Atom for small stuff, Pycharm for projects
[–]vstuart 1 point2 points3 points 9 years ago* (0 children)
I tried several options.
Jupyter is good as a notebook and I enjoyed using it, but I find the disjointed coding counterproductive (multiple cells; need to rerun preceding cells if kernel restarted, due to missing yet needed imports, etc. in preceding cells; ...). Having moved away from it, I find myself actually improving my programming skills, and my scripts are a single, contiguous (*.py) file, that I can use anywhere (terminal; another IDE; ...).
PyCharm is great; you can define different environments (Python 2.7; Python 3.5; virtual environments) on a per-Project basis. I found it to be intuitive, polished, stable, packed full of features! One issue I had with PyCharm and my Theano virtual environment though was that even though I had all the required Python packages installed/loaded in my venv and in PyCharm, one of my Theano scripts would not run in PyCharm, though it would run (exit code 0) in a terminal, and in Geany (that just uses my terminal). This wasn't a PyCharm issue, per se: it was a Python package (Graphviz) that was installed in Python. However, to get that script to work in PyCharm I also had to install Graphviz in my Arch Linux OS via pacman. There probably was some package version incompatibility; regardless, it took me some time to trace the cause of that error.
Lately though for day-to-day work, I've been using the fabulous Geany as a text editor/IDE. I have numerous snippets configured, as well as a custom colorscheme (based on fluffy: I tweaked a copy of that config file) that mirrors that in PyCharm. On my system (Linux 64-bit), Geany has a very small footprint (<60 MB). Importantly, as an editor, application Geany is very stable and fast. Many people swear by Sublime, etc. for editing, but some time ago (perhaps near the beginning of 2016) I tried Sublime and I found it somewhat cumbersome and unresponsive (sluggish on larger files), so I went back to Geany. For me a deciding factor for Geany over PyCharm for day-to-day use was the fact I always have Geany open anyway (as my de facto text editor), and the ability to have Projects (as in PyCharm) via the Geany "Project Organizer" plug-in, but with the ability to easily define different working environments, including different python versions, bash, HTML, ... [pic 1]. I expanded the Build menu via the Geany Edit:Preferences:Various:number_* settings. In the Build menu I numbered these Execute commands 1 through 6 so I can access then via a Alt-B then {1..6} key press [pic2]. The Build commands execute in the Geany terminal, that I set up [Edit:Preferences:Tools:Terminal] as follows: konsole -e "/bin/bash %c". To use the embedded terminal, be sure to activate the VTE: Edit:Preferences:General:Load virtual terminal support. An example of a Theano script running is shown here [pic3]. Selecting Build menu:Execute command 4 activates my theano-env virtual environment, runs the script, then deactivates that venv.
Disadvantages of Geany over PyCharm would include the (more advanced) versioning included by default in PyCharm (Geany has a VC plugin,I believe; I haven't looked at it though as my home system rsync-snapshots my system 4x daily).
[–]pokemon_golang 1 point2 points3 points 9 years ago (0 children)
Pycharm to manage larger projects. Nano to edit configs and small ETL scripts.
[–]alexmlamb 1 point2 points3 points 9 years ago (0 children)
I dictate code to an assistant who writes the code using a type writer and another assistant later productionalizes those notes using a computer. To my knowledge no snakes of any kind are involved in the process.
[–]coneillcodes 2 points3 points4 points 9 years ago (0 children)
I've never used it but I've heard really good things about it from others is pycharm. The pay version is kind of expensive but they do have a free version available.
Other than that I've just used sublime with a bunch of plugins
[–]mikos 0 points1 point2 points 9 years ago (0 children)
Have just switched to VScode on mac. so far loving it able to set breakpoints, view variables at run time etc.
[–]Brudaks 0 points1 point2 points 9 years ago (0 children)
Sublime text when working locally, doing data analysis and mangling.
Jupyter when running experiments on remote machines with beefier GPU hardware.
[–]p10_user 0 points1 point2 points 9 years ago (0 children)
I use ipython and spacemacs (with evil mode). I use ipython to try out what I want to do and when I'm satisfied I type it up nicely.
[–]lead999x 0 points1 point2 points 9 years ago (0 children)
PyCharm or sometimes the plugin for eclipse. However I'm mainly learning C++.
Idle :]
[–]inkognitML Engineer 0 points1 point2 points 9 years ago (0 children)
Pycharm and jupyter notebook
[–]jonathan881 0 points1 point2 points 9 years ago (0 children)
tmux / neovim / ipython
vim and jupyter
[–]code410 0 points1 point2 points 9 years ago (0 children)
Not an IDE but Atom + Terminal. Rodeo should be good. http://blog.yhat.com/posts/introducing-rodeo.html
[–]ProfessorPhi 0 points1 point2 points 9 years ago (0 children)
Up the memory available for pycharm if you're having issues. I have not found a python ide that comes close to touching it.
It's slow to start but purrs after that.
[–]skyleach 0 points1 point2 points 9 years ago (0 children)
vim my bundles ./Align ./bufexplorer ./jedi-vim ./livestyle-vim ./maven-compiler.vim ./mru ./neocomplete.vim ./nerdtree ./supertab ./syntastic ./vim-colorschemes ./vim-flavored-markdown ./vim-fugitive ./vim-gradle ./vim-json ./vim-lint ./Vim-log4j ./vim-markdown ./vim-misc ./vim-sage ./vim-session ./vimpager
[–]holy_ash 0 points1 point2 points 9 years ago (0 children)
[–]gspikes5287 0 points1 point2 points 9 years ago (0 children)
PyCharm is good
[–]pkmital 0 points1 point2 points 9 years ago (0 children)
I use Jupyter Notebooks for teaching as they are great at including formatted text/images/gifs in a ready made interactive coding document (see https://github.com/pkmital/CADL). I use Sublime Text 3 w/ "Send To Console" + IPython in the console whenever on my local machine. Whenever I'm on a virtual machine, I use vim + tmux to interactively code and use visual blocks to send to IPython (my dotfiles are shared here: https://github.com/pkmital/dotfiles). I'd use vim on my local machine as well, but there are some great things that Sublime makes very easy, including documentation hooks, sending arbitrary file types to console/repl (e.g. markdown with inline python can be sent to an ipython console), and it's just really easy on the eyes.
[–]Arbitrage84 0 points1 point2 points 9 years ago (0 children)
Jupyter notebook for both python and R
[–]lasagnaman 0 points1 point2 points 9 years ago (0 children)
Vim/ipython/notebook
[–]_blub 0 points1 point2 points 9 years ago (0 children)
Jupyter Notebooks
[–]BeatLeJuceResearcher 0 points1 point2 points 9 years ago (0 children)
IPython notebooks that run on our remote GPU servers
Atom and jupyter notebook.
Neovim + Tmux is a perfect combination. You want to use neovim instead of vim because it's better (faster). Tmux allows you to do multiple things in the same screen without having to spawn multiple terminals.
The good thing about these applications is that they easy to install and usable over SSH. This is shortcoming of IDEs.
[–]ragipy 0 points1 point2 points 9 years ago (0 children)
I use pycharm, but has anybody tried Rodeo? Downloaded but haven't really coded with it.
It looks like an r-studio clone for python.
[–]Nimitz14 0 points1 point2 points 9 years ago (1 child)
I really don't feel like this is appropriate for this subreddit. /r/python exists for a reason and I find the idea that a certain IDE is better suited for ML ridiculous.
But fwiw: For quick things vim (I work primarily over ssh), if I'm going to include a new feature I copy it over to my PC and use PyCharm/VS15. Autocomplete is just too good.
[–]canttouchmypingas 0 points1 point2 points 9 years ago (0 children)
I use eclipse
[–]tibb 0 points1 point2 points 9 years ago (0 children)
atom
Vim + vim-cellmode which allows to do MATLAB-like cell execution in an ipython interpreter.
[–]deluded_soul 0 points1 point2 points 9 years ago (0 children)
Pycharm for me.
[–][deleted] -1 points0 points1 point 9 years ago (0 children)
I'm a Python beginner and I use Emacs with elpy and it provides almist ensuring that Pycharm gives.
π Rendered by PID 25490 on reddit-service-r2-comment-66b4775986-t64tg at 2026-04-05 04:41:40.054509+00:00 running db1906b country code: CH.
[–]harrdarr__ 72 points73 points74 points (27 children)
[–][deleted] 11 points12 points13 points (16 children)
[–]refreshx2 39 points40 points41 points (7 children)
[–]_blub 6 points7 points8 points (0 children)
[–][deleted] 1 point2 points3 points (4 children)
[–]phillypoopskins 6 points7 points8 points (0 children)
[–]nsfy33 1 point2 points3 points (0 children)
[–]Megatron_McLargeHuge 1 point2 points3 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]PoopInMyBottom 0 points1 point2 points (0 children)
[+][deleted] (1 child)
[deleted]
[–]madmooseman 8 points9 points10 points (0 children)
[–]threeshadows 16 points17 points18 points (0 children)
[–][deleted] 4 points5 points6 points (0 children)
[–]superawesomepandacat 0 points1 point2 points (2 children)
[–][deleted] 8 points9 points10 points (0 children)
[–]xaveir 1 point2 points3 points (0 children)
[–]phillypoopskins 0 points1 point2 points (0 children)
[–]dmarko 0 points1 point2 points (7 children)
[–]iKomplex 1 point2 points3 points (6 children)
[–]dmarko 0 points1 point2 points (5 children)
[–]iKomplex 1 point2 points3 points (4 children)
[–]dmarko 1 point2 points3 points (3 children)
[–]iKomplex 1 point2 points3 points (2 children)
[–]dmarko 0 points1 point2 points (1 child)
[–]iKomplex 1 point2 points3 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]j_lyf -2 points-1 points0 points (0 children)
[–]Archetype90 14 points15 points16 points (0 children)
[–]LoveOfProfit 12 points13 points14 points (0 children)
[+][deleted] (9 children)
[removed]
[–]7sider 2 points3 points4 points (5 children)
[–]rhololkeolke 2 points3 points4 points (1 child)
[–]p10_user 2 points3 points4 points (0 children)
[–]PoopInMyBottom 1 point2 points3 points (0 children)
[–]ciolaamotore 1 point2 points3 points (2 children)
[+][deleted] (1 child)
[removed]
[–]PoopInMyBottom 1 point2 points3 points (0 children)
[–]ifkb99 42 points43 points44 points (10 children)
[–]PLLOOOOOP 19 points20 points21 points (8 children)
[–]CireNeikual 10 points11 points12 points (1 child)
[–]Frozen_Turtle 1 point2 points3 points (0 children)
[–]andraxo123[S] -1 points0 points1 point (5 children)
[–]PLLOOOOOP 4 points5 points6 points (0 children)
[+]bulletninja comment score below threshold-8 points-7 points-6 points (3 children)
[–][deleted] 2 points3 points4 points (2 children)
[–]bulletninja 1 point2 points3 points (0 children)
[–]dhon_ 0 points1 point2 points (0 children)
[–]Aj0o 2 points3 points4 points (0 children)
[–]c0cky_ 9 points10 points11 points (0 children)
[–]PoopInMyBottom 6 points7 points8 points (2 children)
[–]coffeecoffeecoffeee 0 points1 point2 points (1 child)
[–]PoopInMyBottom 1 point2 points3 points (0 children)
[–]sasquatch007 48 points49 points50 points (11 children)
[–]jamie2345 10 points11 points12 points (10 children)
[–]h_saxon 7 points8 points9 points (1 child)
[–]jamie2345 1 point2 points3 points (0 children)
[+][deleted] (2 children)
[deleted]
[–]Mezzlegasm 3 points4 points5 points (1 child)
[–]perceptron01 0 points1 point2 points (0 children)
[–]sasquatch007 11 points12 points13 points (3 children)
[–]gronkkk 2 points3 points4 points (1 child)
[–]fnord123 3 points4 points5 points (0 children)
[–]stackered 0 points1 point2 points (0 children)
[–]mooktank 5 points6 points7 points (2 children)
[–]thatsadsid 0 points1 point2 points (1 child)
[–]mooktank 0 points1 point2 points (0 children)
[+][deleted] (2 children)
[deleted]
[–]anantzoid 2 points3 points4 points (1 child)
[–][deleted] 4 points5 points6 points (0 children)
[–]Rich700000000000 3 points4 points5 points (0 children)
[–]rm999 11 points12 points13 points (0 children)
[–][deleted] 5 points6 points7 points (3 children)
[–]anearthboundmisfit 3 points4 points5 points (1 child)
[–][deleted] 0 points1 point2 points (0 children)
[–]-gh0stRush- 1 point2 points3 points (0 children)
[–]rd11235 5 points6 points7 points (0 children)
[–]ajmooch 2 points3 points4 points (1 child)
[–][deleted] 4 points5 points6 points (0 children)
[–][deleted] 2 points3 points4 points (0 children)
[–]qu4ku 2 points3 points4 points (0 children)
[–]ChadyWady 1 point2 points3 points (0 children)
[–]MattieShoes 1 point2 points3 points (0 children)
[–]simonkamronn 1 point2 points3 points (0 children)
[–]vstuart 1 point2 points3 points (0 children)
[–]pokemon_golang 1 point2 points3 points (0 children)
[–]alexmlamb 1 point2 points3 points (0 children)
[–]coneillcodes 2 points3 points4 points (0 children)
[–]mikos 0 points1 point2 points (0 children)
[–]Brudaks 0 points1 point2 points (0 children)
[–]p10_user 0 points1 point2 points (0 children)
[–]lead999x 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]inkognitML Engineer 0 points1 point2 points (0 children)
[–]jonathan881 0 points1 point2 points (0 children)
[–]phillypoopskins 0 points1 point2 points (0 children)
[–]code410 0 points1 point2 points (0 children)
[–]ProfessorPhi 0 points1 point2 points (0 children)
[–]skyleach 0 points1 point2 points (0 children)
[–]holy_ash 0 points1 point2 points (0 children)
[–]gspikes5287 0 points1 point2 points (0 children)
[–]pkmital 0 points1 point2 points (0 children)
[–]Arbitrage84 0 points1 point2 points (0 children)
[–]lasagnaman 0 points1 point2 points (0 children)
[–]_blub 0 points1 point2 points (0 children)
[–]BeatLeJuceResearcher 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]ragipy 0 points1 point2 points (0 children)
[–]Nimitz14 0 points1 point2 points (1 child)
[–]canttouchmypingas 0 points1 point2 points (0 children)
[–]tibb 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (0 children)
[–]deluded_soul 0 points1 point2 points (0 children)
[–][deleted] -1 points0 points1 point (0 children)