python – PYTHONPATH on Linux

python – PYTHONPATH on Linux

1) PYTHONPATH is an environment variable which you can set to add additional directories where python will look for modules and packages. e.g.:

# make python look in the foo subdirectory of your home directory for
# modules and packages 

Here I use the sh syntax. For other shells (e.g. csh,tcsh), the syntax would be slightly different. To make it permanent, set the variable in your shells init file (usually ~/.bashrc).

2) Ubuntu comes with python already installed. There may be reasons for installing other (independent) python versions, but Ive found that to be rarely necessary.

3) The folder where your modules live is dependent on PYTHONPATH and where the directories were set up when python was installed. For the most part, the installed stuff you shouldnt care about where it lives — Python knows where it is and it can find the modules. Sort of like issuing the command ls — where does ls live? /usr/bin? /bin? 99% of the time, you dont need to care — Just use ls and be happy that it lives somewhere on your PATH so the shell can find it.

4) Im not sure I understand the question. 3rd party modules usually come with install instructions. If you follow the instructions, python should be able to find the module and you shouldnt have to care about where it got installed.

5) Configure PYTHONPATH to include the directory where your module resides and python will be able to find your module.

  1. PYTHONPATH is an environment variable
  2. Yes (see
  3. /usr/lib/python2.7 on Ubuntu
  4. you shouldnt install packages manually. Instead, use pip. When a package isnt in pip, it usually has a setuptools setup script which will install the package into the proper location (see point 3).
  5. if you use pip or setuptools, then you dont need to set PYTHONPATH explicitly

If you look at the instructions for pyopengl, youll see that they are consistent with points 4 and 5.

python – PYTHONPATH on Linux

PYTHONPATH is an environment variable those content is added to the sys.path where Python looks for modules. You can set it to whatever you like.

However, do not mess with PYTHONPATH. More often than not, you are doing it wrong and it will only bring you trouble in the long run. For example, virtual environments could do strange thingsā€¦

I would suggest you learned how to package a Python module properly, maybe using this easy setup. If you are especially lazy, you could use cookiecutter to do all the hard work for you.

Leave a Reply

Your email address will not be published. Required fields are marked *