Path problems when I am in bash

xeon Mailinglist xeonmailinglist at gmail.com
Wed Dec 30 06:17:37 EST 2015


On Wednesday, December 30, 2015 at 2:30:40 AM UTC, Karim wrote:
> On 30/12/2015 00:21, xeon Mailinglist wrote:
> > 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
> 
> Hello,
> 
> Can you try to set your PYTHONPATH like that:
> 
> export PYTHONPATH=${PYTHONPATH}:${MEDUSA_HOME}
> 
> Regards
> Karim

Thanks.



More information about the Python-list mailing list