在一台服务器上,我可以导入库,而在第二台服务器上,我不能。该库通过两台服务器上的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
的路径之间。
Sys模块文档说sys.path是
字符串列表,指定模块的搜索路径。从环境变量PYTHONPATH初始化,再加上取决于安装的默认设置
参见:https://docs.python.org/3/library/sys.html
因此必须有不同的取决于安装的默认值。检查确切的python版本。也许python模块二进制文件来自不同的apt仓库。也许python命令来自两个服务器中的不同位置-请通过以下方式进行检查:
which python