python – 导入numpy会导致ImportError:无法导入名称TestCase

我正在研究远程桌面服务器,
Windows XP Profesional.大约2小时前,numpy还在那里工作.我试图使用mulitprocessing.Pool()对一个for循环进行并行化,我一定做错了,因为经过一段时间后,有100个python.exe进程在运行.我花了一些时间重新进入服务器,我想测试为什么所有这些进程都已完成.但是,我遇到了以下错误:

>>> import numpy
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python27\lib\site-packages\numpy\__init__.py", line 154, in <module>
    import add_newdocs
  File "C:\Python27\lib\site-packages\numpy\add_newdocs.py", line 9, in <module>

    from numpy.lib import add_newdoc
  File "C:\Python27\lib\site-packages\numpy\lib\__init__.py", line 4, in <module
>
    from type_check import *
  File "C:\Python27\lib\site-packages\numpy\lib\type_check.py", line 8, in <modu
le>
    import numpy.core.numeric as _nx
  File "C:\Python27\lib\site-packages\numpy\core\__init__.py", line 45, in <modu
le>
    from numpy.testing import Tester
  File "C:\Python27\lib\site-packages\numpy\testing\__init__.py", line 8, in <mo
dule>
    from unittest import TestCase
ImportError: cannot import name TestCase

我可以导入unittest.py,但我无法导入TestCase:

>>> import unittest
>>> from unittest import TestCase
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name TestCase

我从Eclipse运行python与从命令行运行它有同样的问题.但是,当使用不同的Python(也是2.7,但是32位)时,它确实有效.

我首先尝试重新安装numpy,但这并没有解决问题.我发现的唯一其他解决方案是the answerthis question.但是,我查看并删除了所有unittest.py文件,我仍然遇到同样的问题.我不知道下一步该尝试什么.

最佳答案 (从评论中移动)

显然,.pyc文件可能会过时.引用
http://nedbatchelder.com/blog/201310/finding_stale_pyc_files.html

Recently I was debugging one of those “it can’t happen” kinds of
problems, and wanted to make sure I didn’t have any stale .pyc files
lying around.

因此,首先要尝试检查输入的确切内容:print(unittest .__ file__).你已经检查过它在工作目录中不是一个杂散的unittest.py.好.如果它是.pyc文件,只需尝试删除它.没有任何伤害,它会在您下次导入时重新生成.

我承认我对“为什么”的问题没有明智的答案.如果有任何比我更有知识的人可以回答它,我很乐意upvote并删除这个答案.

点赞