Python路径在哪里被操纵?

阿尔贝托·基乌索(Alberto Chiusole)

在一台服务器上,我可以导入一个库,而在第二台服务器上,我不能。我需要导入的库是通过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/中为所有服务器指定路径,但是我想知道区别在哪里。

阿尔贝托·基乌索(Alberto Chiusole)

我发现Python中存在路径配置文件在Python 3上site模块文档中

它从头和尾部分开始最多构建四个目录。首先,它使用sys.prefix和sys.exec_prefix;空头被跳过。对于尾部,它使用空字符串,然后使用lib / site-packages(在Windows上)或lib / pythonX.Y / site-packages(在Unix和Macintosh上)。对于每个不同的首尾组合,它会查看它是否指向现有目录,如果是,则将其添加到sys.path中,并检查新添加的配置文件路径。
...
路径配置文件是名称形式为name.pth的文件,并且存在于上述四个目录之一中。它的内容是要添加到sys.path中的其他项(每行一个)。不存在的项目永远不会添加到sys.path,并且不会检查该项目是指向目录而不是文件。没有一项可以添加到sys.path中。空行和以#开头的行将被跳过。执行从导入开始的行(后跟空格或制表符)。

就我而言/usr/local/lib/python2.7/dist-packages/easy-install.pth,第二个服务器上缺少一个文件

python -S在调试时,禁用自动导入这些文件可能很有用。

不幸的是,我还没有找到一种方法来检索从中读取路径配置文件的目录列表。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python3在哪里给出了几个路径

来自分类Dev

aclocal的搜索路径在哪里

来自分类Dev

Chocolatey安装路径在哪里?

来自分类Dev

IFormFile的文件路径在哪里?

来自分类Dev

aclocal的搜索路径在哪里

来自分类Dev

模型操纵逻辑在AngularJS中的作用在哪里?

来自分类Dev

我在哪里设置我的bash路径?

来自分类Dev

Delphi路径变量在哪里声明?

来自分类Dev

PowerShell命令的程序路径在哪里?

来自分类Dev

我在哪里设置我的bash路径?

来自分类Dev

存储android sdk路径的文件在哪里?

来自分类Dev

Windows中我的类路径在哪里?

来自分类Dev

Python:在哪里编译RE?

来自分类Dev

在哪里测试Python代码

来自分类Dev

Python:在哪里编译RE?

来自分类Dev

python mysqldb查询在哪里

来自分类Dev

ZF2:控制器的返回/结果在哪里由MVC操纵?

来自分类Dev

使用基因剔除和MVVM时在哪里编写dom操纵代码

来自分类Dev

Linux内核中用于Switch Pro蓝牙操纵杆处理的代码在哪里?

来自分类Dev

iOS:[UIImage imageNamed]加载的文件路径在哪里

来自分类Dev

我在哪里验证REST Web服务的加载路径

来自分类Dev

在哪里可以找到Build.sbt的库路径?

来自分类Dev

头文件的绝对路径在哪里

来自分类Dev

Web项目的参考路径保存在哪里?

来自分类Dev

Windows的Sublime Text 3中的路径在哪里?

来自分类Dev

Visual Studio在哪里保存DLL引用路径?

来自分类Dev

OpenERP(Odoo)在哪里找到模块路径?

来自分类Dev

Windows 7中在哪里指定java jre路径?

来自分类Dev

骨干网中图像的路径在哪里?