Skip to content Skip to sidebar Skip to footer

How To Set Pythonpath Differently For Version 2 And 3?

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

Solution 1:

For Linux, you can create a symbolic link to you library folder and place it in your aimed version:

ln -s /your/path /usr/local/lib/python3.6/site-packages

This is not about changing PYTHONPATH but an alternative solution.

Solution 2:

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() or site.getusersitepackages()):

Python 2.7.11 (default, Dec  62015, 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 module documentation for more.

Solution 3:

Your options are dependent on the operating system.

For ubuntu, if you're using the standard python packages...

If you wish to do this system-wide (and you have administrative privileges), you can add additional paths to sys.path via /usr/lib/pythonN.M/site.py.

For yourself only, the system default site.py files already put $HOME/.local/lib/pythonN.M/site-packages into your sys.path (iff it exists) so you can just create the directories and put version-specific packages there.

Solution 4:

Alternatively way is set alias in ~/.bashrc or ~/.bash_aliases, e.g.(Assume python2 is your existing python 2 command):

alias py2='PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages python2'

, which this path can get from import site; site.getsitepackages()

In future simply issue command py2 instead of python2 to do the task with version 2 packages.

Post a Comment for "How To Set Pythonpath Differently For Version 2 And 3?"