加载本机python库

时间:2011-12-02 17:55:33

标签: python module python-module

Python 2.7附带了json库。在我的PYTHONPATH中,我包含第三方来源,其中一个也称为json。结果加载了错误的json库。处理和避免上述情况的良好做法是什么?有没有办法指示Python以这种方式from ? import json显式加载本机库。

2 个答案:

答案 0 :(得分:2)

你可以尝试

from path import json as anotherjson

这样就可以删除命名空间冲突。

您还可以看到有关相对/绝对导入的讨论。

它说:

  

在Python 2.5中,您可以将导入行为切换为绝对导入   使用from future import absolute_import指令。这个   绝对导入行为将成为未来版本的默认行为   (可能是Python 2.7)。绝对导入是默认导入   string总能找到标准库的版本。这是建议的   用户应尽可能多地开始使用绝对导入。

from __future__ import absolute_import
# from standard path
import json as _json 
# from a package
from pkg import json as pkgjson

另一种技术是使用imp模块

import imp
json = imp.load_source('json', '/path/to/json.py')

答案 1 :(得分:2)

在PYTHONPATH [docs]上有多个具有相同名称的模块没有好办法,这意味着您应该将第三方json模块移动到不在PYTHONPATH上的备用位置,然后导入它使用其他一些方法。

最简单的方法是将第三方json模块移动到它已经存在的位置的子目录中,然后通过向其添加__init__.py使该子目录成为模块。

如果您将此新目录命名为“thirdparty”,则可以使用from thirdparty import json导入第三方json模块,import json将始终导入Python的json模块。

或者,您可以将模块重命名为不冲突的内容。