如何为版本2和版本3设置不同的PYTHONPATH?

如何为版本2和版本3设置不同的PYTHONPATH?,python,Python,假设我在.bashrc中设置了PYTHONPATH,如下所示: export PYTHONPATH=$PYTHONPATH:/ver2packages 当我在python 3中检查python路径时: $ python3 >>> import sys >>> print(sys.path) ['', '/home/user', '/ver2packages', '/usr/lib/python3.4', '/usr/lib/python3.4/plat-x8

假设我在
.bashrc
中设置了PYTHONPATH,如下所示:

export PYTHONPATH=$PYTHONPATH:/ver2packages
当我在python 3中检查python路径时:

$ 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']
ver2packages
中,如果存在与版本3的包同名的包,则可能存在冲突和错误


有没有办法为每个版本的Python设置pythonpath?

对于Linux,您可以创建指向库文件夹的符号链接,并将其放置在目标版本中:

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

这不是关于更改PYTHONPATH,而是一种替代解决方案。

您的选项取决于操作系统

对于ubuntu,如果您使用的是标准python包

如果您希望在系统范围内执行此操作(并且您具有管理权限),可以通过
/usr/lib/pythonN.M/site.py
sys.path
添加其他路径


仅限您自己使用,系统默认的
site.py
文件已将
$HOME/.local/lib/pythonN.M/site包
放入您的
sys.path
(如果存在)因此,您可以创建目录并将特定于版本的软件包放在那里。

您可以使用路径配置(
.pth
)文件为Python 2和Python 3设置不同的
sys.path

例如,要将目录添加到Python2的
sys.path
,请在任何Python2站点包目录中创建
.pth
文件(即,由或返回):

然后创建一个
.pth
文件(作为根目录):

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

有关更多信息,请参阅模块文档。

或者在
~/.bashrc
~/.bash\u别名中设置别名,例如(假设
python2
是您现有的python 2命令):

,此路径可从导入站点获取;site.getsitepackages()


将来,只需发出命令
py2
而不是python2,就可以使用版本2软件包完成任务。

最好的解决方案可能是在
/usr/lib/python27/dist-packages/
中使用create
filename.pth
,并添加一行路径,即
ver2packages
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']
alias py2='PYTHONPATH=/usr/local/lib/python2.7/dist-packages:/usr/lib/python2.7/dist-packages python2'