簡體   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