繁体   English   中英

Python 3绝对导入不起作用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM