社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

无意中重写Python2.7标准模块-如何防止?

virtualnobi • 7 年前 • 1910 次点击  

我想在python的日志模块中添加一些内容,所以我在包名“my”下创建了一个单独的模块,它位于项目的目录中(这是 sys.path )我还有另一个模块,它也生活在同一个空间里:

my
my.logging
my.something

现在我想登录 my.something 并添加 import logging 对文件-但看起来python加载了 my.logging 而不是标准模块。

阅读python文档时(第6.1.2节)。模块搜索路径),我认为我是安全的:

导入名为spam的模块时,解释器首先搜索具有该名称的内置模块。如果找不到,它将在变量sys.path给定的目录列表中搜索名为spam.py的文件。

所以“标准模块”不是“内置模块”?我想我得把 my 当前目录中的模块-?其他可能性?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40069
文章 [ 1 ]  |  最新文章 7 年前
user2357112
Reply   •   1 楼
user2357112    7 年前

当它说“内置模块”时,这行文档指的是直接编译到python可执行文件中的模块。你可以看到里面有哪些 sys.builtin_module_names .

您需要做的是关闭隐式相对导入,这可以在每个文件的基础上使用 absolute_import 未来声明:

from __future__ import absolute_import