3

I have an error that only appears when running unittests inside of PyCharm.

Python 3.6.5 on OSX.

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

This error seems related to Why Python 3.6.1 throws AttributeError: module 'enum' has no attribute 'IntFlag'? The suggestions there don't work here.

  • Adding enum-compat to requirements.txt doesn't change anything.
  • A trivial unit test .py file that imports nothing at all still shows this problem.
  • There are no enum.py files in my project directory.
  • Happens with a clean virtualenv and a clean venv.
  • Everything works fine outside of PyCharm.

This only appears to happen in the one project I have that uses Graphene, which does have an enum.py, but even deleting those files has no effect. find . -name "enum.py" returns nothing.

Any PyCharm experts have an idea? I really like to run my tests inside of PyCharm and I'd love to be able to do so for this project.

Adam
  • 16,808
  • 7
  • 52
  • 98

1 Answers1

1

I ran into this issue as well. I was able to solve it by removing the enum34 package. Even if you're using venv you need to make sure that you check all directories that the PyCharm Project Interpreter is adding to the PYTHONPATH. Just running pip uninstall enum34 may not fix the issue.

In my case, I had PyCharm loading extra directories to the PYTHONPATH and the enum34 package was included in one of them. Removing it from that directory solved the issue.