Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

like image 841
Andrew Avatar asked May 03 '12 18:05

Andrew


2 Answers

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.

like image 145
User Avatar answered Oct 04 '22 20:10

User


Please try PyCharm 2.5.1 RC, there was a bug with sys.path building (it contained incorrect, duplicated project source directory).

If it's not the case, you can mark additional directories as Source in Preferences | Project Structure or add them to the Paths in the Python Interpreters.

like image 38
CrazyCoder Avatar answered Oct 04 '22 20:10

CrazyCoder