如何为版本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/
中使用createfilename.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'