Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python `ImportError:从scikit学习导入时无法导入名称_remove_dead_weakref`_Python_Scikit Learn - Fatal编程技术网

Python `ImportError:从scikit学习导入时无法导入名称_remove_dead_weakref`

Python `ImportError:从scikit学习导入时无法导入名称_remove_dead_weakref`,python,scikit-learn,Python,Scikit Learn,问题描述 调用python脚本时出现以下错误: Traceback (most recent call last): File "/path/t/file/file.py", line 61, in <module> from sklearn.externals import joblib File "/anaconda2/lib/python2.7/site-packages/sklearn/__init__.py", line 20, in <module&

问题描述

调用python脚本时出现以下错误:

Traceback (most recent call last):
  File "/path/t/file/file.py", line 61, in <module>
    from sklearn.externals import joblib
  File "/anaconda2/lib/python2.7/site-packages/sklearn/__init__.py", line 20, in <module>
    import logging
  File "/anaconda2/lib/python2.7/logging/__init__.py", line 26, in <module>
    import sys, os, time, cStringIO, traceback, warnings, weakref, collections
  File "/anaconda2/lib/python2.7/weakref.py", line 14, in <module>
    from _weakref import (
ImportError: cannot import name _remove_dead_weakref
Failed to load file
注释

注1: 单独调用
import sklearn
也会产生此错误

注2: 在没有任何其他导入语句的情况下运行,并且文件中的其余代码被注释掉,也会产生错误

注3: Objective-C代码通过python C API()调用此python文件。 这在另一台规格和操作系统完全相同的机器上可以完美运行(请参阅下面的详细信息)

注4: 如果我从终端调用Python,然后从sklearn.externals导入joblib(不从objective-C调用),则不会出现错误

注5: 我想我没有安装任何虚拟环境。我尝试在终端上调用
pyenv
pyvenv
virtualenv
。始终获取
-未找到bash:pyvenv:command

详细信息

我试过的两台机器都是MacBook Pros,运行MacOS10.13的规格相同。(代码对其中一个有效,而对另一个无效)

我在机器上试过这个,代码失败:

我向(a)可执行文件调用的脚本和(b)终端上的python CLI添加了以下行:

print ">>>>>>>>>"+str(sys.executable)
print ">>>>>>>>>"+str(sys.version)
print "++++++++++++++++++++++++++++++++++++++++++++++++++++"
for p in sys.path: 
    print p
>>> sys.executable
'/anaconda2/bin/python'

>>> sys.version
'2.7.14 |Anaconda, Inc.| (default, Dec  7 2017, 11:07:58) \n[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]'

>>> for p in sys.path:
...     print p
... 

/anaconda2/lib/python27.zip
/anaconda2/lib/python2.7
/anaconda2/lib/python2.7/plat-darwin
/anaconda2/lib/python2.7/plat-mac
/anaconda2/lib/python2.7/plat-mac/lib-scriptpackages
/anaconda2/lib/python2.7/lib-tk
/anaconda2/lib/python2.7/lib-old
/anaconda2/lib/python2.7/lib-dynload
/anaconda2/lib/python2.7/site-packages
/anaconda2/lib/python2.7/site-packages/aeosa
失败脚本的输出:

>>>>>>>>>/anaconda2/bin/python
>>>>>>>>>2.7.10 (default, Feb  6 2017, 23:53:20) 
[GCC 4.2.1 Compatible Apple LLVM 8.0.0 (clang-800.0.34)]
++++++++++++++++++++++++++++++++++++++++++++++++++++
/anaconda2/lib/python27.zip
/anaconda2/lib/python2.7
/anaconda2/lib/python2.7/plat-darwin
/anaconda2/lib/python2.7/plat-mac
/anaconda2/lib/python2.7/plat-mac/lib-scriptpackages
/anaconda2/lib/python2.7/lib-tk
/anaconda2/lib/python2.7/lib-old
/anaconda2/lib/python2.7/lib-dynload
/anaconda2/lib/python2.7/site-packages
/anaconda2/lib/python2.7/site-packages/aeosa
~/Desktop/Test Software/Sources/*****/path/to/.py/file/*****/Classification
终端上的输出:

print ">>>>>>>>>"+str(sys.executable)
print ">>>>>>>>>"+str(sys.version)
print "++++++++++++++++++++++++++++++++++++++++++++++++++++"
for p in sys.path: 
    print p
>>> sys.executable
'/anaconda2/bin/python'

>>> sys.version
'2.7.14 |Anaconda, Inc.| (default, Dec  7 2017, 11:07:58) \n[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)]'

>>> for p in sys.path:
...     print p
... 

/anaconda2/lib/python27.zip
/anaconda2/lib/python2.7
/anaconda2/lib/python2.7/plat-darwin
/anaconda2/lib/python2.7/plat-mac
/anaconda2/lib/python2.7/plat-mac/lib-scriptpackages
/anaconda2/lib/python2.7/lib-tk
/anaconda2/lib/python2.7/lib-old
/anaconda2/lib/python2.7/lib-dynload
/anaconda2/lib/python2.7/site-packages
/anaconda2/lib/python2.7/site-packages/aeosa

基本上,除了版本之外,得到的都是相同的东西,而且我(显然)在搜索路径中也看到了.py文件的路径。

尝试卸载,然后再次安装您的软件包:


conda uninstall scikit learn

尝试执行以下命令。我遇到了一个类似的问题,我能够通过以下方式解决它:

  • sudo-pip卸载scikit-learn
  • sudo pip安装-U scikit学习
  • 确保满足以下依赖项: Scikit学习需要:

    Python(>=2.7或>=3.3)
    NumPy(>=1.8.2),
    SciPy(>=0.13.3)

    也检查这个

    注5:
    pyenv
    命令在
    python2
    中不存在。
    您可以改用
    virtualenv

    你能发布哪个python3的输出吗