在一台服务器上,我可以导入库,而在第二台服务器上,我不能。我需要导入的库是通过 NFS 共享的,并且两台服务器都可以访问。
我发现两台服务器之间的 Python 路径不同,但 Python 二进制文件是相同的,从标准 ubuntu 16.04 存储库安装,并且$PYTHONPATH
在两台服务器上都未设置。
服务器 1:
$ echo $PYTHONPATH
$ python
>>> import sys; sys.path
['', '/usr/lib/python2.7', '...', '/usr/local/lib/python2.7/dist-packages', '/home/user/app/src/python', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/wx-3.0-gtk2']
服务器 2:
$ echo $PYTHONPATH
$ python
>>> import sys; sys.path
['', '/usr/lib/python2.7', '...', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
我如何理解这个库在哪里定义,以便将相同的行为复制到服务器 2?
奇怪的事实是库被放置在路径/usr/local/lib
和/usr/lib
.
编辑:python 二进制文件是相同的(相同的版本 2.7.12,并且校验和匹配)并且它是从标准位置的 ubuntu 存储库安装的/usr/bin/python
。
我玩过这个库site
,所有变量都是相同的(site.ENABLE_USER_SITE
返回 True)。
我知道我可以操纵脚本中的路径,或者PYTHONPATH
在 /etc/profile.d/ 中为所有服务器指定路径,但我想知道区别在哪里。