[英]Python 3 absolute import does not work
我有一个包含两个文件的文件夹:test.py和csv.py。 在test.py我有
import csv
这将导入我的csv.py文件,而不是导入内置的csv模块。
为什么? 我以为绝对导入是Python 3中的默认设置?
如何强制Python加载内置的csv模块?
from __future__ import absolute_import
没有帮助。 也没有
csv = __import__('csv', level=0)
根据文档,应该“仅执行绝对导入”。
重命名csv.py是不可接受的解决方案。 另外,我宁愿不使用“从模块导入某些东西”语法(在这种情况下它不是有帮助的)。
(在Linux Mint 17.1上使用Python 3.4.0)
您有一个顶层csv
模块,该模块位于上.
路径,因此可以在内置模块之前找到它。 这就是绝对导入的工作方式 。
如果您希望csv
是“本地”的,请将模块移动到软件包中。 将您的模块移到带有包名称的目录中,并添加__init__.py
文件(可以为空)。 然后,您的csv
模块将被命名为yourpackage.csv
并且不会被视为顶级模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.