ML Engine Python版本问题

时间:2018-03-02 20:15:24

标签: python virtualenv google-cloud-ml

在经历flower classification tutorial时,我遇到了一个python问题。尝试使用命令

运行培训师预处理脚本
python trainer/preprocess.py \
    --input_dict "$DICT_FILE" \
    --input_path "gs://cloud-ml-data/img/flower_photos/eval_set.csv" \
    --output_path "${GCS_PATH}/preproc/eval" \
    --cloud

我收到以下错误;

Traceback (most recent call last):
  File "trainer/preprocess.py", line 71, in <module>
    import apache_beam as beam
  File "/Users/some_guy/Documents/Programs/ML/cmle-env/lib/python3.6/site-packages/apache_beam/__init__.py", line 72, in <module>
    'It is not supported on Python [%s].' % sys.version_info)
TypeError: not all arguments converted during string formatting

这听起来像我的(virtualenv?)路径有错误的python。

python -V返回

Python 3.6.3 :: Anaconda, Inc.

这可能是错误的,因为我的cmle-env被激活(它在我的终端提示符前面加上),所以我认为cmle-env会知道正确使用的python版本,所以我不会遇到依赖问题。我逐字地按照教程说明进行操作,并且之前的census data tutorial工作得很好(在同一个gcloud项目中)。

我对gcloudvirtualenv都很陌生,所以也许我错过了一些东西(例如python -V返回anaconda 3.6很奇怪,这是在我的主持人身上我不知道认为与激活的cmle-env有任何关系。

TLDR:如何让我的cmle-env使用正确的python版本,以便我可以运行花教程培训师?我真的想继续 - 除了python问题之外,这些都很棒。

这是在MacOS High Sierra 10.13.3上运行

2 个答案:

答案 0 :(得分:1)

它是Apache Beam中的一个错误,它在一年前修复:https://github.com/apache/beam/commit/30b5fe552cbf40a6914d327ac5455394ee615493

答案 1 :(得分:0)

确保在使用--python-p选项创建virtualenv时指定所需的python版本,如:

$ virtualenv -p /path/to/python2.7 cmle-env