3

我正在使用 Windows XP Professional 远程桌面服务器。大约 2 小时前,numpy 仍在那儿工作。我试图使用 for 循环并行化mulitprocessing.Pool(),但我一定做错了什么,因为在短时间内运行了 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,但这并没有解决问题。我找到的唯一其他解决方案是这个问题的答案。但是,我已经查看并删除了所有 unittest.py 文件,但我仍然遇到同样的问题。我不知道下一步该尝试什么。

4

1 回答 1

7

(从评论中移出)

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

最近我正在调试其中一种“不可能发生”的问题,并想确保我周围没有任何陈旧的 .pyc 文件。

因此,首先要尝试检查正在导入的内容:print(unittest.__file__). 您已经检查过它不是unittest.py工作目录中的流浪者。好的。如果是.pyc文件,请尝试删除它。不会有任何伤害,下次导入时会重新生成。

我不得不承认我对“为什么”这个问题没有聪明的答案。如果有人比我更有知识可以回答,我很乐意投票并删除这个答案。

于 2013-10-23T16:51:48.153 回答