2017-01-10 6 views
0

Я использую mercurial, и он отлично работал на моем компьютере в течение длительного времени. Однако, когда я использовал его сегодня я получил следующее сообщение об ошибке:ValueError: Key font.fantasy: Попытка относительного импорта в непакете в Mercurial

рт.ст.

** unknown exception encountered, please report by visiting 
** https://mercurial-scm.org/wiki/BugTracker 
** Python 2.7.12 (default, Jul 1 2016, 15:12:24) [GCC 5.4.0 20160609] 
** Mercurial Distributed SCM (version 4.0.2) 
** Extensions loaded: 
Traceback (most recent call last): 
    File "/usr/local/bin/hg", line 45, in <module> 
    mercurial.dispatch.run() 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line 60, in run 
    sys.exit((dispatch(request(sys.argv[1:])) or 0) & 255) 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line 126, in dispatch 
    ret = _runcatch(req) 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line 216, in _runcatch 
    return callcatch(ui, _runcatchfunc) 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line 225, in callcatch 
    return func() 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/dispatch.py", line 158, in _runcatchfunc 
    'pdb' : pdb.set_trace 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/demandimport.py", line 152, in __getattribute__ 
    self._load() 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/demandimport.py", line 100, in _load 
    mod = _hgextimport(_import, head, globals, locals, None, level) 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/demandimport.py", line 53, in _hgextimport 
    return importfunc(name, globals, *args, **kwargs) 
    File "/usr/local/bin/pdb.py", line 6, in <module> 
    exec(compile(open(__file__).read(), __file__, 'exec')) 
    File "/home/student/Documents/ven_python3/basekit/scripts/pdb.py", line 5, in <module> 
    from basekit.utils.tool import parse_subargs 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/demandimport.py", line 260, in _demandimport 
    mod = _hgextimport(_origimport, name, globals, locals) 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/demandimport.py", line 53, in _hgextimport 
    return importfunc(name, globals, *args, **kwargs) 
    File "/home/student/repos/basekit/basekit/__init__.py", line 4, in <module> 
    matplotlib.use("Agg") 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/demandimport.py", line 152, in __getattribute__ 
    self._load() 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/demandimport.py", line 100, in _load 
    mod = _hgextimport(_import, head, globals, locals, None, level) 
    File "/usr/local/lib/python2.7/dist-packages/mercurial/demandimport.py", line 53, in _hgextimport 
    return importfunc(name, globals, *args, **kwargs) 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-2.0.0b4-py2.7-linux-x86_64.egg/matplotlib/__init__.py", line 1170, in <module> 
    rcParams = rc_params() 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-2.0.0b4-py2.7-linux-x86_64.egg/matplotlib/__init__.py", line 1013, in rc_params 
    return rc_params_from_file(fname, fail_on_error) 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-2.0.0b4-py2.7-linux-x86_64.egg/matplotlib/__init__.py", line 1146, in rc_params_from_file 
    if key not in _all_deprecated]) 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-2.0.0b4-py2.7-linux-x86_64.egg/matplotlib/__init__.py", line 897, in __init__ 
    self[k] = v 
    File "/usr/local/lib/python2.7/dist-packages/matplotlib-2.0.0b4-py2.7-linux-x86_64.egg/matplotlib/__init__.py", line 916, in __setitem__ 
    raise ValueError("Key %s: %s" % (key, str(ve))) 
ValueError: Key font.fantasy: Attempted relative import in non-package 

Я не знаю, как я вызвал эту ошибку, я установил ртутный в некоторых virtualenviroments где питон не python2.7 но python3 0,5. Может ли быть причиной этой ошибки? Однако я удалил ртуть из своей системы и снова установил ее. Странно, если я сделаю установку через pip, я получаю вышеуказанные сообщения об ошибках. Если я использую APT-получить установку я получаю сообщение:

abort: couldn't find mercurial libraries in [/usr/bin

Итак, мой вопрос теперь: Как получить ртутный снова работает?

Заранее спасибо.

ответ

1

Если вы прочтете обратную линию, вы увидите, что это не сработало в matplotlib, что показалось мне очень странным: зачем ртутью нужен matplotlib?

Googling for "mercurial matplotlib" Я нашел различные сообщения с проблемами, похожими на ваши. Оказывается, matplotlib является зависимостью от activity extension.

Так что я думаю, что обходным путем было бы отключить это расширение в вашем файле конфигурации mercurial (hg config --edit откроет файл конфигурации в редакторе по умолчанию). Затем найдите строку, начинающуюся с activity= и прокомментируйте ее.

Если вам действительно нужно это расширение, так как оно не распространяется с помощью меркуриала, возможно, вам просто нужно обновить источник до более поздней версии (файл конфигурации укажет на каталог, содержащий клон репо расширения, то вы должны hg pull -u внутри этого каталога), или вы можете google больше о «mercurial activity» и посмотреть, что такое статус.

Обратите внимание, что вышеприведенный комментарий о Mercurial, не поддерживающий Python 3, вводит в заблуждение, так как вы наклеиваете вывод, что он использует Python 2.7.

EDIT

Редактирование файла конфигурации с hg config --edit не получится, так как ошибка срабатывает в самом файле конфигурации.

Вы можете отредактировать файл конфигурации напрямую. Глядя на выведенный вами вывод, вы находитесь в системе Unix, поэтому файл конфигурации пользователя будет $HOME/.hgrc.

+0

Эй, в первую очередь, спасибо за ваше время и позволить, но, к сожалению, ваши решения не работают, если я попробую одну из этих команд, я получаю ту же ошибку, что и выше, поэтому я не могу избавиться от этой зависимости. – Mia

+0

Вы правы :-) Я обновил свой ответ. –

+0

Он работает сейчас !!! Большое вам спасибо, этот способ очень полезен! : D – Mia