【问题标题】:ImportError on scipy.statsscipy.stats 上的 ImportError
【发布时间】:2018-07-07 13:56:58
【问题描述】:

我正在尝试使用需要 scipy 依赖的 python 程序。安装了scipy 依赖项,但我需要调用scipy.stats,然后调用binom,它位于scipy 内。

我在这些答案中尝试了该方法:

Import scipy.stats error

No module named scipy.stats - Why despite scipy being installed

>>> import scipy
>>> import scipy.stats
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named stats
>>> from scipy import stats
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name stats
>>> from scipy.stats import binom
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named stats

我不是 sudo 用户,无法重命名文件,但文件名应该不是问题,因为它用于经常使用的服务器。

有什么建议吗?

【问题讨论】:

  • 导入scipy后,比如说as sc,直接用sc.stats.binom玩呢?
  • @Kanak 那行不通。 import scipy 不导入所有子包。
  • @WarrenWeckesser。它对我有用。
  • @Kanak 你是说如果脚本中仅有的两个语句是import scipy as sc; print(sc.stats) 你不会得到错误?
  • @WarrenWeckesser。好的。起初我虽然在 scipy/__init__.py 中有一个 from .stats import *,这可以解释为什么我没有出错。实际上,导致我认为import scipy as sc;sc.stats 普遍有效的脚本依赖于PySAL。在它的一个脚本中,即common.py,它读取import scipy as sp;import scipy.stats as stats。然后做print(sp.stats) 错误地工作。

标签: python scipy packages python-import importerror


【解决方案1】:

在您的 Python-CLI 中尝试以下操作:

>>> import scipy
>>> scipy.__version__
'1.0.0'
>>> scipy.__file__
'/usr/local/lib/python3.6/site-packages/scipy/__init__.py'

查看您的输出是否与此类似。如果scipy.__file__ 指向您的私有目录,那么您必须通过重命名您自己的包来解决该命名空间问题。 如果看起来相似,则在另一个终端中移动到该目录:

cd /usr/local/lib/python3.6/site-packages/scipy/
ls

寻找一个名为stats/的文件夹,如果它丢失了,那么你的scipy没有正确安装,你应该重新安装它。

【讨论】:

  • 如果stats/文件夹存在于正确的路径,但仍然出现ModuleNotFoundError: No module named 'stats'错误怎么办?谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-04-07
  • 2019-04-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-02
  • 1970-01-01
相关资源
最近更新 更多