Я использую чужой код, доступный на 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("."))
и подтвердил, что папка, где я пытаюсь импортировать действительно в результирующем списке.
Не знаете, как действовать. Был бы признателен за любую помощь я могу получить :)
конфликт в библиотеках – sissas