首页 文章

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

提问于
浏览
14

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

4 回答

  • 10

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

    如果你使用的是Python 2.5,你也可以switch absolute imports on

    from __future__ import absolute_import
    
  • 12

    别 .

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

  • 5

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

    import imp
    mymodule = imp.load_module(name, file, pathname, description)
    
  • -1

    最好的方法是将项目放在一个目录中,让我们说 "myproject" 驻留在:

    /home/me/myproject

    myproject 目录的符号链接设置为其中一个默认python路径,例如:

    # ln -s /home/me/myproject /usr/local/lib/python2.7/dist-packages/myproject

    现在,当您想要在项目中导入模块时,只需打开一个python解释器 .

    >>> from myproject.mymodule import *

    它会像魅力一样工作 .

    最后一点,不要将项目命名为与python路径中的项目相同,因此导入时不会出现问题 .

相关问题