在 Canopy 中导入 scikit-learn 是一个简单的过程。首先,确保你已经安装了 scikit-learn
,然后你可以像在其他 Python 环境中一样导入它。
1、问题背景
我正在尝试使用以下代码:
python
from matplotlib import pyplot as plt
from sklearn.datasets import load_iris
import numpy as np
我收到以下错误:
python
ImportError: No module named sklearn.datasets
然后我尝试安装 scikit-learn,但遇到了以下错误:
python
pip install -U scikit-learn
File "<ipython-input-9-6d283b29f0f9>", line 1
pip install -U scikit-learn
^
SyntaxError: invalid syntax
easy_install -U scikit-learn
File "<ipython-input-10-59440c1e5ef6>", line 1
easy_install -U scikit-learn
^
SyntaxError: invalid syntax
我正在使用 Enthought Canopy Express,我原以为"Enthought Python Distribution 已经搭载了较新版本。"就像在 http://scikit-learn.org/stable/install.html#enthought-python-distribution 中提到的那样。我如何使用 scikit-learn?
编辑:通过 easy_install pip 安装 pip 后,我尝试运行 pip install -U scikit-learn,并收到了从日志文件中获取的以下错误:
python
running build_clib
No module named msvccompiler in numpy.distutils; trying from distutils
customize MSVCCompiler
Missing compiler_cxx fix for MSVCCompiler
customize MSVCCompiler using build_clib
building 'libsvm-skl' library
compiling C sources
Partial import of sklearn during the build process.
C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\numpy\distutils\system_info.py:564: UserWarning: Specified path C:\Users\vagrant\src\master-env\libs is invalid.
warnings.warn('Specified path %s is invalid.' % d)
C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\numpy\distutils\system_info.py:564: UserWarning: Specified path C:\Users\vagrant\src\master-env\include is invalid.
warnings.warn('Specified path %s is invalid.' % d)
C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\numpy\distutils\system_info.py:1494: UserWarning:
Atlas (http://math-atlas.sourceforge.net/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [atlas]) or by setting
the ATLAS environment variable.
warnings.warn(AtlasNotFoundError.__doc__)
C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\numpy\distutils\system_info.py:1503: UserWarning:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
warnings.warn(BlasNotFoundError.__doc__)
C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\numpy\distutils\system_info.py:1506: UserWarning:
Blas (http://www.netlib.org/blas/) sources not found.
Directories to search for the sources can be specified in the
numpy/distutils/site.cfg file (section [blas_src]) or by setting
the BLAS_SRC environment variable.
warnings.warn(BlasSrcNotFoundError.__doc__)
sklearn\svm\setup.py:58: UserWarning:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
warnings.warn(BlasNotFoundError.__doc__)
sklearn\setup.py:77: UserWarning:
Blas (http://www.netlib.org/blas/) libraries not found.
Directories to search for the libraries can be specified in the
numpy/distutils/site.cfg file (section [blas]) or by setting
the BLAS environment variable.
warnings.warn(BlasNotFoundError.__doc__)
error: Unable to find vcvarsall.bat
----------------------------------------
Cleaning up...
Removing temporary dir c:\users\cle1394\appdata\local\temp\pip_build_cle1394...
Command C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\Scripts\python.exe -c "import setuptools;__file__='c:\\users\\cle1394\\appdata\\local\\temp\\pip_build_cle1394\\scikit-learn\\setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\cle1394\appdata\local\temp\pip-1ysfly-record\install-record.txt --single-version-externally-managed failed with error code 1 in c:\users\cle1394\appdata\local\temp\pip_build_cle1394\scikit-learn
Exception information:
Traceback (most recent call last):
File "C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\pip-1.4.1-py2.7.egg\pip\basecommand.py", line 134, in main
status = self.run(options, args)
File "C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\pip-1.4.1-py2.7.egg\pip\commands\install.py", line 241, in run
requirement_set.install(install_options, global_options, root=options.root_path)
File "C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\pip-1.4.1-py2.7.egg\pip\req.py", line 1298, in install
requirement.install(install_options, global_options, *args, **kwargs)
File "C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\pip-1.4.1-py2.7.egg\pip\req.py", line 625, in install
cwd=self.source_dir, filter_stdout=self._filter_install, show_stdout=False)
File "C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\lib\site-packages\pip-1.4.1-py2.7.egg\pip\util.py", line 670, in call_subprocess
% (command_desc, proc.returncode, cwd))
InstallationError: Command C:\Users\cle1394\AppData\Local\Enthought\Canopy\User\Scripts\python.exe -c "import setuptools;__file__='c:\\users\\cle1394\\appdata\\local\\temp\\pip_build_cle1394\\scikit-learn\\setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\cle1394\appdata\local\temp\pip-1ysfly-record\install-record.txt --single-version-externally-managed failed with error code 1 in c:\users\cle1394\appdata\local\temp\pip_build_cle1394\scikit-learn
2、解决方案
- 尝试在 OS 终端而不是 Python 命令行中运行以下命令:
python
pip install -U scikit-learn
-
确保正在使用 Canopy Basic,而不是 Canopy Express。
-
如果正在使用 Canopy Basic,可以从 OS 命令行安装任何包,如下所示:
python
pip install scikit-learn
-
确保拥有兼容的 Python 版本。Scikit-learn 不兼容于所有版本的 Python。
-
确保系统中安装了必需的依赖项。Scikit-learn 依赖于 NumPy、SciPy 和 matplotlib。
-
如果仍然遇到问题,可以尝试从源
总结
- 安装
scikit-learn
:通过 Canopy 包管理器或pip
安装。 - 导入库 :使用
import sklearn
或从其中导入特定模块。 - 验证安装 :打印
scikit-learn
版本确认安装成功。 - 开始使用:加载数据,创建模型,进行训练与预测。
如果遇到问题,可以检查 scikit-learn
是否已正确安装,并确保 Canopy 环境的配置正确。