How To Set Pythonpath Differently For Version 2 And 3?
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?"