>最初我收到此错误(找不到模块名称)所以我安装了一个 Scipy 轮文件。现在我不再收到同样的错误,但我得到了cannot import name "_ccallback_c"
.
该错误似乎是在代码的第四行触发的。我做了研究,看到其他人建议尝试像蟒蛇这样的环境。我已经看到它在空闲时工作,该解决方案对我来说并不理想。
追踪:
Traceback (most recent call last):
File "C:UsersjoeshDesktopPythonMachine Learning1st tutorial.py", line 4, in <module>
from sklearn import preprocessing, cross_validation, svm
File "C:UsersjoeshDesktopPythonlibsite-packagessklearn__init__.py", line 134, in <module>
from .base import clone
File "C:UsersjoeshDesktopPythonlibsite-packagessklearnbase.py", line 10, in <module>
from scipy import sparse
File "C:UsersjoeshDesktopPythonlibsite-packagesscipy__init__.py", line 118, in <module>
from scipy._lib._ccallback import LowLevelCallable
File "C:UsersjoeshDesktopPythonlibsite-packagesscipy_lib_ccallback.py", line 1, in <module>
from . import _ccallback_c
ImportError: cannot import name '_ccallback_c'
和代码:
import pandas as pd
import quandl, math
import numpy as np
from sklearn import preprocessing, cross_validation, svm
from sklearn.linear_model import LinearRegression
我在使用Anaconda 时遇到了同样的错误,所以我不确定使用它是否会有任何不同。 我通过卸载 scipy 并使用 pip 重新安装它来解决它:
pip uninstall scipy
您将收到以下消息:
卸载 scipy-1.1.0:将删除: C:\users\thesh\appdata\local\programs\python\python36-32\lib\site-packages\scipy-1.1.0.dist-info* C:\users\thesh\appdata\local\programs\python\python36-32\lib\site-packages\scipy* 继续(是/否)?
按y
键,画中画完成后,键入:
pip install scipy
刚刚迁移到MSVS 2017进行Python(ML)开发,我遇到了这个和其他与缺少模块相关的错误。 这个问题(以及所有相关问题)有一个令人沮丧的简单解决方案:当我最初开始使用 Python 编码时,我从命令行安装了所有内容 - 显然,MSVS 2017 不会"看到"这些安装(事实上,它们有时会发生冲突,因为底层 python 可能正在利用较旧的库);因此,解决方案是:
使用命令行版本的"pip 卸载..."其中"..."是缺少依赖项的库(在本例中为 scipy)。 然后,在 Python 环境窗口的 MSVS 2017 命令行中(通常是默认显示配置的右上角),重新加载库(在这种情况下,键入"scipy"将格式化命令行以执行 [在命令文本框下方的列表控件中]),该内容将读取类似"pip install scipy"的内容(或需要为 MSVS 重新安装的任何库)。
对于许多(或所有)以前的 Python 包安装,您可能需要执行此操作,其中这些缺失的模块错误仍然存在。
可以通过在Anaconda 提示符上使用 pip 卸载并重新安装来解决:
pip uninstall scipy
卸载后,您可以使用以下命令重新安装:
pip install scipy
当您在 Python 3.6 版本中安装 scipy withpip
并稍后尝试使用 Python 3.7 运行代码时,您会遇到此问题。所以一种解决方案是卸载 scipy
pip3 uninstall scipy
并重新安装它(使用带有 Python 3.7 的环境):
pip3 install scipy
这将确保安装的 scipy 版本与您的 Python 版本兼容。
PS:当您将Python从Python 3.6更新到Python 3.7时,可能还需要重新安装pip
,以便pip
内部使用正确版本的Python。
当我按照这些有关如何使用虚拟环境使用预构建版本的 SciPy 的说明进行操作时,我遇到了这个问题。对我来说,最简单的解决方案是简单地注释掉from . import _ccallback_c
scipy_lib_ccallback.py
.
我第一次遇到scipy的错误。所以我python -m pip install -user numpy scipy matplotlib ipython jupyter pandas sympy nose
运行了命令,它工作得很好。我用pip安装所有东西,所以我决定使用Anaconda。我安装并检查以添加到 PATH。从那里开始,之前执行的相同代码通常停止工作,并显示与问题类似的错误。我卸载了 Anaconda,它现在又开始工作了。
呵呵
:
$ winpty python ia.py
Traceback (most recent call last):
File "ia.py", line 11, in <module>
from sklearn import tree #importando a biblioteca e a árvore p/ o classifica
dor
File "C:UsersfernaAnaconda3libsite-packagessklearn__init__.py", line 13
4, in <module>
from .base import clone
File "C:UsersfernaAnaconda3libsite-packagessklearnbase.py", line 11, in
<module>
from scipy import sparse
File "C:UsersfernaAppDataRoamingPythonPython36site-packagesscipy__ini
t__.py", line 118, in <module>
from scipy._lib._ccallback import LowLevelCallable
File "C:UsersfernaAppDataRoamingPythonPython36site-packagesscipy_lib
_ccallback.py", line 1, in <module>
from . import _ccallback_c
ImportError: cannot import name '_ccallback_c'
科迪戈:
from sklearn import tree #importando a biblioteca e a árvore p/ o classificador
#COLLLECT TRAINING DATA
features = [[140,1],[130,1],[150,0],[170,0]]
labels = [0,0,1,1]
# TRAIN CLASSIFIER
clf = tree.DecisionTreeClassifier() #Classificador
clf = clf.fit(features, labels) #algoritmo de decisão p/ encontrar padrões
#MAKE PREDICTIONS
print(clf.predict([[160, 0]])) #entrada de dados para o tratamento
试试这个:
python -m pip install --upgrade scipy
深入研究后,为了提供完整的背景知识,首先 SciPy 依赖于已经安装了 NumPy。 SciPy 轮的setup.py
文件使用 NumPy 功能来配置和安装轮子。
科学setup.py
:
...
if __name__ == '__main__':
from numpy.distutils.core import setup
setup(**configuration(top_path='').todict())
其次,当只是尝试使用轮子时,如果您遇到此错误,您可以在检查轮子的文件后看到原因是二进制轮子具有命名约定,其中共享对象文件(此处称为_ccallback_c.so
)而是根据二进制轮支持的体系结构命名。 当尝试按/_lib/_ccallback.py
中的文件名导入共享对象时,它找不到它,因此此错误(/_lib/_ccallback.py
中的第 1 行),因为它不是_ccallback_c.so
命名,而是称为_ccallback_c.cpython-36m-x86_64-linux-gnu.so
或其他架构变体:
from . import _ccallback_c
这些文件名似乎是使用 Cython 和 Cython 遵守 PEP 3149(ABI 版本标记为 .so 文件)的库的工件。 但最简单的解决方法是将 .whl 扩展名更改为 .zip 并将所有相关的 .so 文件重命名为不包含体系结构代码段。 然后更改.zip -> .whl,除非它与您正在使用的平台的架构错误,否则应该很好,在这种情况下,您需要为您的平台下载适当的平台轮。