运行时带有python3.5 tkinter导入错误的gcloud ml-engine

时间:2018-07-20 20:31:57

标签: python-3.x gcloud google-cloud-ml

我正在尝试通过以下方式在Google云ml-engine上运行我的模型:

gcloud ml-engine jobs submit training $NAME --module-name train.task_w2v \
     --package-path train --runtime-version 1.8 --python-version 3.5 \
     --scale-tier BASIC --staging-bucket $BUCKET --region $REGION

这是我的setup.py:

from setuptools import find_packages
from setuptools import setup

REQUIRED_PACKAGES = ['numpy', 'tensorflow', 'pandas', 'matplotlib',
'opencv-python', 'PyYAML', 'coloredlogs', 'scikit-learn', 'scipy', 'matplotlib']

setup(
    name='ConvMultiAttention',
    version='0.9',
    author='name',
    install_requires=REQUIRED_PACKAGES,
    packages=find_packages(),
    include_package_data=True,
)

模型在本地运行良好并成功构建:

  

我master-replica-0成功安装了model-0.9coloredlogs-10.0cycler-0.10.0humanfriendly-4.15.1 kiwisolver-1.0.1 matplotlib-2.2.2 opencv-python-3.4.1.15 pyparsing-2.2.0 master -replica-0

     

我master-replica-0运行命令:python3 -m train.task_w2v master-replica-0

但是它得到了这个异常:

  

master-replica-0追溯(最近一次通话最近):导入_tkinter时文件“ /usr/lib/python3.5/tkinter/__init__.py”,第36行ImportError:没有名为“ _tkinter”的模块      

master-replica-0命令'['python3','-m','train.task_w2v']'返回非零退出状态1

因为我的理解是tkinter是python3.5的一部分,所以我真的不知道这里出了什么问题或怎么做。我尝试在没有matplotlib和较低tf版本的情况下运行它,但问题仍然存在。

我也收到这些警告:

  

google-cloud-spanner 0.29.0具有要求请求<3.0dev,> = 2.18.4,但是您将有不兼容的请求2.13.0。

     

人性化脚本安装在PATH之外的'/root/.local/bin'中。

我真的不知道该如何处理,或者甚至不需要。

1 个答案:

答案 0 :(得分:0)

在无头训练中使用TK不会带来很大好处。正如user2368505在评论中指出的,以下内容应避免使用TK:

import matplotlib
matplotlib.use("agg") 

如果对后代有利,我发现在我自己的本地Ubuntu VM上未安装tkinter。如果需要,可以将以下内容添加到您的`setup.py:

import subprocess

subprocess.check_call(['apt-get', '-y', 'install', 'python3-tk'])

同样,它不是直接有用的,而是用来说明如何通过setup.py任意安装依赖项。