Я пытаюсь создать mercurial pre-commit hook, который запускает pylint
на pre-commit. Мой проект использует виртуальную среду.
У меня настроен хук для вызова pylint
для измененных файлов, но я получаю сообщение об ошибке:
Traceback (most recent call last):
File "/home/barmstrong/.virtualenvs/amp/bin/pylint", line 10, in <module>
sys.exit(run_pylint())
File "/home/barmstrong/.virtualenvs/amp/lib/python3.6/site-packages/pylint/__init__.py", line 20, in run_pylint
Run(sys.argv[1:])
File "/home/barmstrong/.virtualenvs/amp/lib/python3.6/site-packages/pylint/lint.py", line 1583, in __init__
linter.load_plugin_modules(plugins)
File "/home/barmstrong/.virtualenvs/amp/lib/python3.6/site-packages/pylint/lint.py", line 636, in load_plugin_modules
module = modutils.load_module_from_name(modname)
File "/home/barmstrong/.virtualenvs/amp/lib/python3.6/site-packages/astroid/modutils.py", line 202, in load_module_from_name
return load_module_from_modpath(dotted_name.split("."), path, use_sys)
File "/home/barmstrong/.virtualenvs/amp/lib/python3.6/site-packages/astroid/modutils.py", line 244, in load_module_from_modpath
mp_file, mp_filename, mp_desc = imp.find_module(part, path)
File "/usr/lib/python3.6/imp.py", line 297, in find_module
raise ImportError(_ERR_MSG.format(name), name=name)
ImportError: No module named 'common'
Я полагаю, что это связано сПользовательский плагин в файле .pylintrc
, который он пытается загрузить из каталога моего проекта в:
'/common/blah/file.py'
А в .pylintrc
на него ссылаются:
common.blah.file
Я пытаюсьчтобы добавить это к PYTHONPATH
работает:
sys.path.append('path/common')
Но ошибка не устранена. Как мне решить эту проблему, чтобы он мог загрузить мой плагин? (Я также пробовал варианты добавления общего модуля к PYTHONPATH
, но безуспешно).
РЕДАКТИРОВАТЬ: если я удаляю файл common.blah/file.py
из моего .pylintrc
, он работает, поэтому мне нужно выяснить,как я могу import
это. Я попытался добавить 'common' к PYTHONPATH
, но, похоже, он не работает.