从Python标准库强制导入模块而不是PYTHONPATH默认值

jrd*_*oko 14 python import module standard-library pythonpath

我在PYTHONPATH中的一个目录中有一个自定义模块,其名称与标准库模块之一相同,因此当我import module_name,该模块被加载时.如果我想使用原始标准库模块,有没有办法强制Python从标准库而不是从PYTHONPATH目录导入,除了重命名自定义模块并更改每个引用以指向新名称?

Lup*_*uch 12

理想的解决方案是将模块重命名为不在标准库中的模块.

如果您使用的是Python 2.5+,也可以切换绝对导入:

from __future__ import absolute_import
Run Code Online (Sandbox Code Playgroud)

  • 如果您在 PYTHONPATH 中有一个阴影 stdlib 模块的模块,绝对导入将无济于事。 (2认同)

S.L*_*ott 11

别.

如果您不小心选择了标准库模块名称,请更改模块名称以结束冲突.

  • 这是显而易见的答案,但我有点恼火的是,按照惯例,标准库被允许占用命名空间。它超大!它包含许多与代码相关的通用单词,例如“类型”和“打字”。而且它一直在增长。 (2认同)

joa*_*uin 6

您可以使用imp模块选择要导入的模块:

import imp
mymodule = imp.load_module(name, file, pathname, description) 
Run Code Online (Sandbox Code Playgroud)