Path problems when I am in bash

xeon Mailinglist xeonmailinglist at gmail.com
Tue Dec 29 18:21:24 EST 2015


I have my source code inside the directory `medusa`, and my unit tests inside `tests` dir. Both dirs are inside `medusa-2.0` dir. Here is my file structure [1].

When I run my tests inside pycharm, everything works fine, but when I try to run my unit tests inside in the prompt [2], the `scheduler/predictionranking.py` can't find the `hdfs` import [3]. I have set my environment inside the `medusa-2.0` dir with the virtualenv, I even have set `medusa-2.0` in the PYTHON_PATH [4]. The error that I have is in [5]. 

The question is, why the import is not being done correctly?


[1] My file structure

medusa-2.0$ 
medusa (source code)
   hdfs.py
   scheduler (dir with my schedulers)
       predictionranking.py
tests (my unit tests)


[2] I run the unit test like this.

medusa-2.0$ python -v tests/testSimpleRun.py


[3] The header in `predictionranking.py`

import hdfs

def get_prediction_metrics(clusters, pinput):
    """
    :param pinput (list) list of input paths

    """

    input_size = hdfs.get_total_size(pinput)

[4] My python path

    export MEDUSA_HOME=$HOME/repositories/git/medusa-2.0

    export PYTHONPATH=${PYTHONPATH}:${MEDUSA_HOME}/medusa

[5] error that I have

medusa-2.0$ python -v tests/testSimpleRun.py
# /home/xeon/repositories/git/medusa-2.0/medusa/local.pyc matches /home/xeon/repositories/git/medusa-2.0/medusa/local.py
import medusa.local # precompiled from /home/xeon/repositories/git/medusa-2.0/medusa/local.pyc
# /home/xeon/repositories/git/medusa-2.0/medusa/ranking.pyc matches /home/xeon/repositories/git/medusa-2.0/medusa/ranking.py
import medusa.ranking # precompiled from /home/xeon/repositories/git/medusa-2.0/medusa/ranking.pyc
# /home/xeon/repositories/git/medusa-2.0/medusa/decors.pyc matches /home/xeon/repositories/git/medusa-2.0/medusa/decors.py
import medusa.decors # precompiled from /home/xeon/repositories/git/medusa-2.0/medusa/decors.pyc
# /home/xeon/repositories/git/medusa-2.0/medusa/settings.pyc matches /home/xeon/repositories/git/medusa-2.0/medusa/settings.py
import medusa.settings # precompiled from /home/xeon/repositories/git/medusa-2.0/medusa/settings.pyc
import medusa.scheduler # directory /home/xeon/repositories/git/medusa-2.0/medusa/scheduler
# /home/xeon/repositories/git/medusa-2.0/medusa/scheduler/__init__.pyc matches /home/xeon/repositories/git/medusa-2.0/medusa/scheduler/__init__.py
import medusa.scheduler # precompiled from /home/xeon/repositories/git/medusa-2.0/medusa/scheduler/__init__.pyc
# /home/xeon/repositories/git/medusa-2.0/medusa/scheduler/predictionranking.pyc matches /home/xeon/repositories/git/medusa-2.0/medusa/scheduler/predictionranking.py
import medusa.scheduler.predictionranking # precompiled from /home/xeon/repositories/git/medusa-2.0/medusa/scheduler/predictionranking.pyc
Traceback (most recent call last):
  File "tests/simpleRun.py", line 4, in <module>
    from medusa.simplealgorithm import run_simple_execution
  File "/home/xeon/repositories/git/medusa-2.0/medusa/simplealgorithm.py", line 8, in <module>
    import accidentalfaults
  File "/home/xeon/repositories/git/medusa-2.0/medusa/accidentalfaults.py", line 5, in <module>
    import hdfs
  File "/home/xeon/repositories/git/medusa-2.0/medusa/hdfs.py", line 6, in <module>
    from system import execute_command
  File "/home/xeon/repositories/git/medusa-2.0/medusa/system.py", line 10, in <module>
    from ranking import rank_clusters
  File "/home/xeon/repositories/git/medusa-2.0/medusa/ranking.py", line 9, in <module>
    from scheduler.predictionranking import get_prediction_metrics
  File "/home/xeon/repositories/git/medusa-2.0/medusa/scheduler/predictionranking.py", line 6, in <module>
    import hdfs



More information about the Python-list mailing list