Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x gcloud ml引擎运行时出现python3.5 tkinter导入错误_Python 3.x_Gcloud_Google Cloud Ml - Fatal编程技术网

Python 3.x gcloud ml引擎运行时出现python3.5 tkinter导入错误

Python 3.x gcloud ml引擎运行时出现python3.5 tkinter导入错误,python-3.x,gcloud,google-cloud-ml,Python 3.x,Gcloud,Google Cloud Ml,我正尝试在Google cloud ml引擎上运行我的模型,其中包括: 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 这

我正尝试在Google cloud ml引擎上运行我的模型,其中包括:

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,
)
模型在本地运行良好,并成功生成:

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

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

但它得到了一个例外:

master-replica-0回溯(最后一次调用):文件“/usr/lib/python3.5/tkinter/_init__.py”,第36行,在import\u tkinter ImportError中:没有名为“\u tkinter”的模块

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

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

我还收到以下警告:

google cloud Spaner 0.29.0的requirement requests=2.18.4,但您的requests为2.13.0,这是不兼容的

脚本humanfriendly安装在“/root/.local/bin”中,但不在路径上


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

在无头培训工作中使用TK不会有什么好处。正如user2368505在评论中指出的,应避免使用TK:

import matplotlib
matplotlib.use("agg") 
为了对子孙后代有利,我发现在我自己的本地Ubuntu虚拟机上没有安装tkinter。如果需要,可以在“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,
)
import subprocess

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

同样,这也不是直接有用的,但可以用来展示如何通过
setup.py

任意安装依赖项,我没有在gcloud ml引擎上执行此操作的权限。我通过使用“import matplotlib matplotlib.use(“agg”)import matplotlib.pyplot as plt”解决了这个问题,因为我不使用tkinter。如果有办法在ml引擎上进行apt get子进程调用,您可以将其添加到您的答案中,以便我可以为其他人接受它吗?我相信apt get命令会起作用(即,您应该有权限)。您可能首先需要
sudo
。另外,我已经用
agg
后端更新了我的答案。