PyCharm单元测试:AttributeError:模块“枚举”没有属性“ IntFlag”

时间:2018-10-12 03:12:41

标签: python-3.x pycharm python-unittest

在PyCharm内部运行单元测试时,出现一个 only 出现错误。

OSX上的Python 3.6.5。

i

此错误似乎与Why Python 3.6.1 throws AttributeError: module 'enum' has no attribute 'IntFlag'?有关 那里的建议在这里不起作用。

  • /Users/me/project/env/bin/python /Applications/PyCharm.app/Contents/helpers/pycharm/_jb_unittest_runner.py --target test_module.TestClass.test_method Traceback (most recent call last): File "/Applications/PyCharm.app/Contents/helpers/pycharm/_jb_unittest_runner.py", line 4, in <module> from unittest import main File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/__init__.py", line 58, in <module> from .result import TestResult File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/unittest/result.py", line 5, in <module> import traceback File "/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/traceback.py", line 5, in <module> import linecache File "/Users/enos/patrf/api/env/lib/python3.6/linecache.py", line 11, in <module> import tokenize File "/Users/enos/patrf/api/env/lib/python3.6/tokenize.py", line 33, in <module> import re File "/Users/enos/patrf/api/env/lib/python3.6/re.py", line 142, in <module> class RegexFlag(enum.IntFlag): AttributeError: module 'enum' has no attribute 'IntFlag' 添加到requirements.txt并没有任何改变。
  • 一个根本不导入任何内容的简单单元测试enum-compat文件仍然显示此问题。
  • 我的项目目录中没有.py个文件。
  • 发生一个干净的enum.py和一个干净的virtualenv
  • 在PyCharm之外一切正常。

这似乎只发生在我使用Graphene的一个项目中,该项目确实具有venv,但是即使删除这些文件也没有效果。 enum.py不返回任何内容。

任何PyCharm专家都有想法吗?我真的很想在PyCharm中运行测试,并且希望能够在此项目中进行测试。

1 个答案:

答案 0 :(得分:1)

我也遇到了这个问题。我可以通过删除enum34软件包来解决它。即使您使用的是venv,也需要确保检查PyCharm项目解释器要添加到PYTHONPATH的所有目录。仅运行pip卸载enum34可能无法解决该问题。

就我而言,我让PyCharm将额外的目录加载到PYTHONPATH中,其中之一包含enum34软件包。从该目录中删除它可以解决该问题。