How to set PYTHONPATH differently for version 2 and 3?
Question: Let's assume that I set PYTHONPATH in `.bashrc` as below:

    
    
    export PYTHONPATH=$PYTHONPATH:/ver2packages
    

And when I check my python path in Python 3:

    
    
    $ python3
    >>> import sys
    >>> print(sys.path)
    ['', '/home/user', '/ver2packages', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x86_64-linux-gnu', '/usr/lib/python3.4/lib-dynload', '/usr/local/lib/python3.4/dist-packages', '/usr/lib/python3/dist-packages']
    

In `ver2packages`, if there are packages having the same name with packages
for version 3, there might be conflicts and errors.

Is there a way to set pythonpath for each version of Python?


Answer: You can set different `sys.path` for Python 2 and Python 3 using path
configuration (`.pth`) files.

For instance, to add a directory to `sys.path` for Python 2, create a `.pth`
file in any of Python 2 site-packages directories (i.e. returned by
[`site.getsitepackages()`](https://docs.python.org/2.7/library/site.html#site.getsitepackages)
or
[`site.getusersitepackages()`](https://docs.python.org/2.7/library/site.html#site.getusersitepackages)):

    
    
    Python 2.7.11 (default, Dec  6 2015, 15:43:46) 
    [GCC 5.2.0] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> import site
    >>> site.getsitepackages()
    ['/usr/lib/python2.7/site-packages', '/usr/lib/site-python']
    

Then create a `.pth` file (as root):

    
    
    echo "/ver2packages" > /usr/lib/python2.7/site-packages/ver2packages.pth
    

See [`site`](https://docs.python.org/2.7/library/site.html) module
documentation for more.

