pythonimportvirtualenvpycharmunittest2

ImportError: No module named test_data, but test_data.py in same directory as test.py under PyCharm using virtualenv


In test.py, I am trying to import test_data:

import unittest2
import re

from test_data import receipt1_example

test_data.py is in the same directory as test.py. I get the following error:

/Users/ahammond/.virtualenvs/ric2.6/bin/python2.6 /Applications/PyCharm.app/helpers/pycharm/utrunner.py /Users/ahammond/src/hackfest_spring_2012/parse_me/test.py::test true Testing started at 11:30 AM ... Traceback (most recent call last):
File "/Applications/PyCharm.app/helpers/pycharm/utrunner.py", line 121, in module = loadSource(a[0]) File "/Applications/PyCharm.app/helpers/pycharm/utrunner.py", line 44, in loadSource module = imp.load_source(moduleName, fileName) File "/Users/ahammond/src/hackfest_spring_2012/parse_me/test.py", line 4, in from test_data import receipt1_example ImportError: No module named test_data

Process finished with exit code 1

As you can see, I am running this under pycharm using a virtualenv. Here's a screenshot of the configuration:

PyCharm debug configuration


Solution

  • The work around i use is:

    import sys
    import os
    try:
        import test_data
    except ImportError:
        sys.path.append(os.path.dirname(__file__))
        try:
            import test_data
        finally:
            sys.path.remove(os.path.dirname(__file__))
    

    A friend told me that one can also add the directory entries to some include directories.