Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Automatically import modules when entering the python or ipython interpreter

I find myself typing import numpy as np almost every single time I fire up the python interpreter. How do I set up the python or ipython interpreter so that numpy is automatically imported?

like image 870
user545424 Avatar asked Jun 20 '12 17:06

user545424


People also ask

How do you automatically import a module in Python?

All you have to do is place a . py or . ipy file in the ~/. ipython/profile_default/startup directory and it will automatically be executed.

Can a module import itself?

There is no need for a module to import itself. A module importing itself may lead to errors as the module may be in an incomplete state when imported by itself.


2 Answers

For ipython, there are two ways to achieve this. Both involve ipython's configuration directory which is located in ~/.ipython.

  1. Create a custom ipython profile.
  2. Or you can add a startup file to ~/.ipython/profile_default/startup/

For simplicity, I'd use option 2. All you have to do is place a .py or .ipy file in the ~/.ipython/profile_default/startup directory and it will automatically be executed. So you could simple place import numpy as np in a simple file and you'll have np in the namespace of your ipython prompt.

Option 2 will actually work with a custom profile, but using a custom profile will allow you to change the startup requirements and other configuration based on a particular case. However, if you'd always like np to be available to you then by all means put it in the startup directory.

For more information on ipython configuration. The docs have a much more complete explanation.

like image 148
ravenac95 Avatar answered Oct 15 '22 23:10

ravenac95


Use the environment variable PYTHONSTARTUP. From the official documentation:

If this is the name of a readable file, the Python commands in that file are executed before the first prompt is displayed in interactive mode. The file is executed in the same namespace where interactive commands are executed so that objects defined or imported in it can be used without qualification in the interactive session.

So, just create a python script with the import statement and point the environment variable to it. Having said that, remember that 'Explicit is always better than implicit', so don't rely on this behavior for production scripts.

For Ipython, see this tutorial on how to make a ipython_config file

like image 26
Dhara Avatar answered Oct 15 '22 23:10

Dhara