2016-02-24 3 views
0

Я использую чужой код, доступный на GitHub. Чтобы запустить их код, я создал virtualenv и установил все перечисленные зависимости - как библиотеки питона, так и клоны других репозиториев. Когда я перехожу запустить включены тесты, я получаю ImportError:py.test: ImportError - не может импортировать ----

Namespace(all=False, regr=False, sci=False, unit=True) 
    [localhost] local: py.test -x -v engine/test 
    ==================================================================================== test session starts ===================================================================================== 
    platform linux2 -- Python 2.7.6, pytest-2.8.2, py-1.4.31, pluggy-0.3.1 -- /home/compomics/local/METASPACE/SM_distributed/SM_engine/bin/python 
    cachedir: engine/test/.cache 
    rootdir: /home/compomics/local/METASPACE/SM_distributed/engine/test, inifile: 
    collecting 6 items/1 errors 
    =========================================================================================== ERRORS =========================================================================================== 
    _______________________________________________________________________ ERROR collecting test_formula_img_validator.py _______________________________________________________________________ 
    engine/test/test_formula_img_validator.py:7: in <module> 
     from engine.formula_img_validator import filter_sf_images,get_compute_img_measures, ImgMeasures 
    engine/formula_img_validator.py:7: in <module> 
     from pyIMS.image_measures import measure_of_chaos, isotope_image_correlation, isotope_pattern_match 
    E ImportError: cannot import name measure_of_chaos 
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Interrupted: stopping after 1 failures !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 
    ================================================================================== 1 error in 0.99 seconds =================================================================================== 

    Fatal error: local() encountered an error (return code 2) while executing 'py.test -x -v engine/test' 

Однако, если открыть интерпретатор питона и попытаться сделать точно такой же импорт, он делает это очень хорошо, без каких-либо ошибок. Подобные вопросы предложил:

  • добавление пустой __init__.py в тестовом каталоге
  • убедившись, что pytest установлен в virtualenv

Я сделал обе эти вещи, и ошибка не будет устранена.

Я добавил к началу тестового сценария:

import os 
    print(os.environ["PYTHONPATH"].split(os.pathsep)) 
    print(os.listdir(".")) 

и подтвердил, что папка, где я пытаюсь импортировать действительно в результирующем списке.

Не знаете, как действовать. Был бы признателен за любую помощь я могу получить :)

+0

конфликт в библиотеках – sissas

ответ

0

был конфликт с другой библиотекой

EDIT - это была моя собственная глупость, что не помня я клонировал предыдущую версию зависимых РЕПО, который также был на моем путь, и это не включало функцию, которую этот код пытался загрузить. Извините за не вычеркнув вопрос, когда я заметил, что я не мог за жизнь мне найти кнопку удаления :)

+0

Попробуйте сформулировать ответ так, чтобы он помогал другим, у кого такая же проблема. В частности, укажите, какая другая библиотека вызвала конфликт и как вы его разрешили. – kazemakase

+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). - [Из обзора] (/ review/low-quality-posts/11389833) – Prune

+0

@Prune Будьте внимательны, это * есть ответ от OP. Не отличный, но все же ответ. – Ajean

0

В файле formula_img_validator.py изменения

from pyIMS.image_measures import measure_of_chaos,isotope_image_correlation, isotope_pattern_match 

в

from engine.pyIMS.image_measures import measure_of_chaos, isotope_image_correlation, isotope_pattern_match 

Это решит проблему. Для полного решения go to GitHub for new updated code.

Смежные вопросы