Предисловие: нет модуля с именем _tkinter
Я пытаюсь протолкнуть микросервис Python на Predix.
Код имеет matplotlib
зависимость.
cf push
не работает для приложения со следующей трассировкой стека.
2017-05-08T19:39:51.43+0530 [App/0] ERR Traceback (most recent call last):
2017-05-08T19:39:51.43+0530 [App/0] ERR File "server.py", line 7, in <module>
2017-05-08T19:39:51.43+0530 [App/0] ERR from services.testService import TestServiceOptimalFrequencyForward as TestService
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/home/vcap/app/services/testService.py", line 12, in <module>
2017-05-08T19:39:51.43+0530 [App/0] ERR from models import test
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/home/vcap/app/models/test.py", line 5, in <module>
2017-05-08T19:39:51.43+0530 [App/0] ERR from models import model1, model2, model3, pvt
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/home/vcap/app/models/model2.py", line 23, in <module>
2017-05-08T19:39:51.43+0530 [App/0] ERR import matplotlib.pyplot as plt
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/app/.heroku/python/lib/python2.7/site-packages/matplotlib/pyplot.py", line 115, in <module>
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/app/.heroku/python/lib/python2.7/site-packages/matplotlib/backends/__init__.py", line 32, in pylab_setup
2017-05-08T19:39:51.43+0530 [App/0] ERR globals(),locals(),[backend_name],0)
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/app/.heroku/python/lib/python2.7/site-packages/matplotlib/backends/backend_tkagg.py", line 6, in <module>
2017-05-08T19:39:51.43+0530 [App/0] ERR _backend_mod, new_figure_manager, draw_if_interactive, _show = pylab_setup()
2017-05-08T19:39:51.43+0530 [App/0] ERR from six.moves import tkinter as Tk
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/app/.heroku/python/lib/python2.7/site-packages/six.py", line 203, in load_module
2017-05-08T19:39:51.43+0530 [App/0] ERR mod = mod._resolve()
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/app/.heroku/python/lib/python2.7/site-packages/six.py", line 115, in _resolve
2017-05-08T19:39:51.43+0530 [App/0] ERR return _import_module(self.mod)
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/app/.heroku/python/lib/python2.7/site-packages/six.py", line 82, in _import_module
2017-05-08T19:39:51.43+0530 [App/0] ERR __import__(name)
2017-05-08T19:39:51.43+0530 [App/0] ERR File "/app/.heroku/python/lib/python2.7/lib-tk/Tkinter.py", line 39, in <module>
2017-05-08T19:39:51.43+0530 [App/0] ERR import _tkinter # If this fails your Python may not be configured for Tk
2017-05-08T19:39:51.43+0530 [App/0] ERR ImportError: No module named _tkinter
2017-05-08T19:39:51.53+0530 [App/0] OUT
2017-05-08T19:39:51.57+0530 [DEA/55] ERR Instance (index 0) failed to start accepting connections
я использую python_buildpack
,
Заранее спасибо за любую помощь в решении этой проблемы.
2 ответа
Решение
Пакет сборки Python поддерживает использование диспетчера пакетов Conda вместо pip
, Возможно, вы захотите попробовать.
http://docs.cloudfoundry.org/buildpacks/python/
Используя это, я смог развернуть этот пример приложения, которое использует Matplotlib для CF.
https://github.com/ihuston/python-cf-examples/tree/master/02-pydata-spyre-app
Надеюсь, это поможет!
Предположим, что вы работаете в Linux, выполните sudo apt-get install python-tk
Возможно, вам придется потом перекомпилировать Python.