Ткинтер в виртуальной среде (PyCharm / Mac OS 10.13.4) - PullRequest
0 голосов
/ 07 мая 2018

Я настроил виртуальную среду, и когда я пытаюсь запустить на ней matplotlib, я получаю следующую ошибку:

Traceback (most recent call last):
  File "/Users/sumeet/PycharmProjects/VISM/test2.py", line 2, in <module>
    import matplotlib.pyplot as plt
  File "/Users/sumeet/tensorflow/lib/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
    _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
  File "/Users/sumeet/tensorflow/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 62, in pylab_setup
    [backend_name], 0)
  File "/Users/sumeet/tensorflow/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 4, in <module>
    from . import tkagg  # Paint image to Tk photo blitter extension.
  File "/Users/sumeet/tensorflow/lib/python2.7/site-packages/matplotlib/backends/tkagg.py", line 5, in <module>
    from six.moves import tkinter as Tk
  File "/usr/local/Cellar/python/2.7.14_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/six.py", line 203, in load_module
    mod = mod._resolve()
  File "/usr/local/Cellar/python/2.7.14_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/six.py", line 115, in _resolve
    return _import_module(self.mod)
  File "/usr/local/Cellar/python/2.7.14_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/six.py", line 82, in _import_module
    __import__(name)
  File "/usr/local/Cellar/python/2.7.14_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ImportError: No module named _tkinter

Из того, что я понимаю, мне нужно

  1. set переменные среды правильно в сценарии активации
  2. или я могу symlink tkinter папку в virtualenv python2.7.

Я выполнил следующие шаги: TKinter в Virtualenv , но я все еще получаю сообщение об ошибке.

Шаги, которые я выполнил:

  • Для virtualenv / bin / activ я добавил TK_LIBRARY=/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/site-packages/PIL:/usr/lib TKPATH=/usr/lib/python2.7/lib-tk:/usr/lib/python2.7/site-packages/PIL:/usr/lib TCL_LIBRARY=/usr/lib export TCL_LIBRARY TK_LIBRARY TKPATH

  • В virtualenv / lib / python2.7 я бегал, ln -s /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_tkinter.so

Обратите внимание, что когда я использую системный Python в качестве интерпретатора PyCharm, matplotlib работает нормально, что дает мне ощущение, что Tkinter доступен где-то в моей системе, но мне не удается вызвать его из моей виртуальной среды.

Ссылка выше, похоже, работает для Ubuntu. Мне интересно, кто-нибудь знает, что такое аналогичная версия для Mac.

Спасибо!

1 Ответ

0 голосов
/ 21 июня 2018

Если вы не используете tkinter в виртуальной среде, вы можете использовать следующие строки кода:

import matplotlib
matplotlib.use(‘TkAgg’)
import matplotlib.pyplot as plt

Надеюсь, это решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...