当前位置: 首页 > 知识库问答 >
问题:

“From__Future__Import Absolute_Import”不禁用Jupyter笔记本中的相对导入。怎么修?

田昊天
2023-03-14

从这篇文章:

Python:禁用相对导入

表示可以通过以下方式禁用相对导入:

from __future__ import absolute_import

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-e38c4f8fc4a0> in <module>
      1 from __future__ import absolute_import
      2 
----> 3 from networkx import drawing

ImportError: cannot import name 'drawing'
from __future__ import absolute_import
import os
import sys


for p in sys.path:
    print(p)

print("=================")

import networkx
print(os.path.abspath(networkx.__file__))

from networkx import drawing

结果:

> /home/shared/anaconda3/lib/python36.zip
> /home/shared/anaconda3/lib/python3.6
> /home/shared/anaconda3/lib/python3.6/lib-dynload
> /home/peng/.local/lib/python3.6/site-packages
> /home/shared/anaconda3/lib/python3.6/site-packages
> /home/shared/anaconda3/lib/python3.6/site-packages/IPython/extensions
> /home/peng/.ipython
> ================= /home/peng/git/convnet-abstraction/slide/package/networkx.py
> --------------------------------------------------------------------------- ImportError                               Traceback (most recent call
> last) <ipython-input-4-d28ac292787c> in <module>
>      12 print(os.path.abspath(networkx.__file__))
>      13 
> ---> 14 from networkx import drawing
> 
> ImportError: cannot import name 'drawing'

这里是另一张截图:

共有1个答案

慕河
2023-03-14

相对进口与此无关。发生的情况是sys.path可能类似于:

[
 '',  # the current directory
 'C:\\Program Files\\Python 3.5\\python35.zip',
 'C:\\Program Files\\Python 3.5\\DLLs',
 'C:\\Program Files\\Python 3.5\\lib',
 'C:\\Program Files\\Python 3.5', 
 #network x is in one of these two
 'C:\\Users\\<you>\\AppData\\Roaming\\Python\\Python35\\site-packages',
 'C:\\Program Files\\Python 3.5\\lib\\site-packages'
]

当您键入import networkx时,它会按顺序遍历这些目录,查找networkx.py。它会先在你的“无标题文件夹”中找到一个。

解决此问题的最佳方法是重命名文件,或将其放在一个子目录mystuff/networkx

这是一个坏主意,但您也可以执行sys.path.remove('')来删除第一个条目。

 类似资料:
  • 从这个帖子: Python:禁用相对导入 指示可以通过以下方法禁用相对导入:

  • 我有一些问题在python导入。我不太明白为什么会有错误。 我使用jupyter笔记本从目录笔记本。我需要导入函数位于 对于导入,我尝试使用 正如这里https://docs.python.org/3/reference/import.html(第5.7段)和python显示我一个错误试图相对导入超过顶级包。 包

  • 我已经安装了Keras和TensorFlow GPU,但当我尝试将这些库导入Jupiter笔记本时,出现了一个错误 下面是使用conda list的库,下面是jupyter显示给我的错误: ModuleNotFoundError Traceback(最近的调用最后)在---- ModuleNotFoundError:没有名为keras的模块 我在蟒蛇环境中尝试这个: pip3安装keras 要求已

  • 我想将一些通用功能外包给一个模块中的多个笔记本电脑(也用于测试目的)。当前目录结构如下所示 在中,有一个简单的函数 然而,当我想导入和使用在通过使用(我认为有意义的) 我得到一个。我做错了什么?我正在使用Python 3.9。

  • C:\users\user\appdata\local\programs\python\python37\lib\site-packages\scipy__init__.py在154#中,这使得“from scipy import fft”返回scipy.fft,而不是np.fft 155 del fft-->156 from。导入fft C:\users\user\appdata\local\p

  • 我正在使用Jupyter笔记本编写Python 2代码。我将其调用为: 同时,我使用IPython控制台,启动时使用: 我的问题是,Jupyter历史被保存,并且与IPython历史混合在一起。我根本不想要Jupyter笔记本的历史记录-有没有办法禁用它,同时保留IPython**历史记录? 平台:win32 更新: 我尝试过使用建议的设置摘要方法。但是,当我在配置中输入“c.Session.di