为啥我不能从 Spyder 导入 scikit-learn,但我可以从命令行导入?
Posted
技术标签:
【中文标题】为啥我不能从 Spyder 导入 scikit-learn,但我可以从命令行导入?【英文标题】:Why can't I import scikit-learn from Spyder, but I can import it from the command line?为什么我不能从 Spyder 导入 scikit-learn,但我可以从命令行导入? 【发布时间】:2021-07-21 23:40:20 【问题描述】:我使用 Spyder 网站上的独立安装程序为 MacOS Big Sur 安装了 Spyder 5(即不需要 Anaconda)。我一直在使用 Spyder 4.2.1 并成功导入了 scikit-learn。但是,在我安装了 Spyder 5 后,我无法导入 scikit-learn,并且出现 ModuleNotFound 错误。所以我从放置它的“Library/Python/2.7/lib/python/site-packages”目录中删除了“sklearn”目录,并重新安装了scikit-learn与
pip install -U scikit-learn
正如 scikit-learn 网站上所说的那样。我现在可以从我的 Mac 终端命令行导入模块,但是当我尝试使用 Spyder 时,我收到一条长消息,其中包括
ImportError: dlopen(/Users/my_user_name/Library/Python/2.7/lib/python/site-packages/sklearn/__check_build/_check_build.so, 2): Symbol not found: __PyThreadState_Current 引用自:/Users/my_user_name/Library/Python/2.7/lib/python/site-packages/sklearn/__check_build/_check_build.so 预期在:平面命名空间 在 /Users/my_username/Library/Python/2.7/lib/python/site-packages/sklearn/__check_build/_check_build.so
还有
scikit-learn 好像没有正确构建。
如果你已经从源代码安装了 scikit-learn,请不要忘记
在使用之前构建包:运行python setup.py install
或
make
在源目录中。
如果您使用过安装程序,请检查它是否适合您的 Python 版本、您的操作系统和您的平台。
此时我能做什么?
【问题讨论】:
ImportError
引用 python-2.7
,pip3
会发生这种情况吗?
@AlexanderL.Hayes,一点关系都没有。这看起来不像是 Spyder 问题,而是安装问题。
(这里是 Spyder 维护者) 如果您想使用我们安装程序未附带的其他模块,请安装Miniconda,然后创建一个conda environment使用您要使用的软件包和spyder-kernels
,最后是connect Spyder 到那个环境。
谢谢你,卡洛斯。我尝试了您的建议,但它在我的机器上不太有效。不过,我会再试一次。
【参考方案1】:
你需要安装依赖: scikit-learn 需要:
Python (>= 3.6)
NumPy (>= 1.13.3)
SciPy (>= 0.19.1)
joblib (>= 0.11)
threadpoolctl (>= 2.0.0)
为了好结果requirements.txt
注意:Scikit-learn 0.20 是支持 Python 2.7 和 Python 3.4 的最后一个版本。 scikit-learn 0.23 及更高版本需要 Python 3.6 或更高版本。
pip install scikit-learn==0.20.4
了解更多请转到this
【讨论】:
以上是关于为啥我不能从 Spyder 导入 scikit-learn,但我可以从命令行导入?的主要内容,如果未能解决你的问题,请参考以下文章
为啥当我使用 Pygame 时 Spyder 不能在任何地方显示我的图形输出?
为啥要导入 pdb; pdb.set_trace 在 Spyder 中以不同方式调用时会触发两种不同的调试场景?
scikit-learn.impute 没有使用机器学习 A-Z 教程中的代码通过 Spyder 从 Imputer 导入