gpt4 book ai didi

Python 导入警告

转载 作者:太空宇宙 更新时间:2023-11-03 17:58:47 26 4
gpt4 key购买 nike

假设我想在程序中使用 scipy,并为其指定别名 sp。我还想使用 scipy 中的 linalg 模块。与 numpy 不同的是,该模块不会自动导入。所以我必须写:

import scipy as sp
import scipy.linalg

这达到了预期的结果:我现在可以编写 sp.linalg.inv(...)

问题是行import scipy.linalg也导入了scipy。考虑到我对 scipy 的所有调用都是使用别名 sp 进行的,spyder 在第二行中给出了警告 'scipy' returned but notused

这样做的正确方法是什么?或者我的方法是正确的,而问题只是 spy 的?

我可以做:

import scipy.linalg
sp = scipy

但这看起来并不像Pythonic..

最佳答案

如果你使用

from scipy import linalg

那么scipy将不会被添加到全局命名空间,尽管这会将linalg添加到全局命名空间。

<小时/>

作为技术说明,可以在不添加 scipylinspace 的情况下定义 sp.linspace全局变量:

import importlib
import scipy as sp
sp.linalg = importlib.import_module('scipy.linalg')

请注意,只有 sp 位于 globals() 中:

print(globals().keys())
# ['__builtins__', '__file__', 'sp', '__package__', '__name__', '__doc__']

或者,

import scipy as sp
sp.linalg = __import__('scipy.linalg', fromlist=['linalg'])

关于Python 导入警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28047850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com