PyCharm单元测试:AttributeError:模块'enum'没有属性'IntFlag'

问题描述 投票:3回答:1

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

OSX上的Python 3.6.5。

/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'

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

  • 向Requirements.txt添加enum-compat不会做任何更改。
  • 根本不导入任何内容的简单单元测试.py文件仍然显示此问题。
  • 我的项目目录中没有enum.py文件。
  • 发生干净的virtualenv和干净的venv
  • 在PyCharm之外,一切正常。

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

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

python-3.x pycharm python-unittest
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.