我在PYTHONPATH中的一个目录中有一个自定义模块,其名称与标准库模块之一相同,所以当我 import module_name 时,该模块被加载 . 如果我想使用原始标准库模块,有没有办法强制Python从标准库而不是从PYTHONPATH目录导入,除了重命名自定义模块并更改每个引用以指向新名称?
import module_name
理想的解决方案是将模块重命名为不在标准库中的模块 .
如果你使用的是Python 2.5,你也可以switch absolute imports on:
from __future__ import absolute_import
别 .
如果您不小心选择了标准库模块名称,请更改模块名称以结束冲突 .
您可以使用imp模块选择要导入的模块:
import imp mymodule = imp.load_module(name, file, pathname, description)
最好的方法是将项目放在一个目录中,让我们说 "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路径中的项目相同,因此导入时不会出现问题 .
4 回答
理想的解决方案是将模块重命名为不在标准库中的模块 .
如果你使用的是Python 2.5,你也可以switch absolute imports on:
别 .
如果您不小心选择了标准库模块名称,请更改模块名称以结束冲突 .
您可以使用imp模块选择要导入的模块:
最好的方法是将项目放在一个目录中,让我们说 "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路径中的项目相同,因此导入时不会出现问题 .