0

我是 python 新手,在导入模块时遇到了一些麻烦。我对编程的先验知识非常有限(一些 Fortran 和 C),我通常使用 Matlab。

我在网上搜索了导入方法,根据大多数教程,首选方法是:import X

如果我使用控制台(分别为 iPython),我可以执行以下操作:

import scipy
scipy.stats.cauchy.pdf

但是,当我在函数中使用同一行时,它不起作用,我必须使用

import scipy.stats as s
s.stats.cauchy.pdf

或者我得到:AttributeError: 'module' object has no attribute 'stats'

通过阅读这个“导入模块”或“从模块导入”,我得到了两者都应该工作的印象。

如果有人能迅速为我解决这个问题,我将非常感激!

最好的祝福,克里斯

4

1 回答 1

1

它不应该发生在新打开 ipython的实例上。您通常无法像这样访问:

import scipy 
scipy.stats.cauchy.pdf

没有得到AttributeError, 在任一ipython或常规python解释器中。你需要做

import scipy.stats

某处,因为它是一个子模块。

要么你有一个早期导入的scipy.stats挂在你的ipython命名空间中,要么你有一些自动启动脚本在ipython启动时导入它。

注意: 如果您使用 ipython 的run魔法函数执行脚本,任何全局变量和导入的模块都将保留在作用域内。

于 2013-02-26T04:42:04.140 回答