首页 文章

gsutil错误“ImportError:无法导入名称常量”我无法修复

提问于
浏览
0

我正在尝试使用gsutil命令从gs bucket下载文件 . 这是从谷歌 Cloud 虚拟机实例中删除的,它一直在为我工作,直到它周五停止工作,我没有任何改变 .

无论出于何种原因,操作系统都是CentOS 6,因此默认的python是2.6 . 当我开始在这个盒子上工作时,我能够使用env变量CLOUDSDK_PYTHON来指定python 2.7路径,并且一切都工作了几周 . 然后出乎意料的是,它停止了gsutil内部的一些python错误 . 我在盒子上找到了一个备份版本并且一直在使用它,直到周五它停止工作 .

设置CLOUDSDK_PYTHON后,这就是我得到的错误

[daily-gateway-node bin] $ gsutil -version Traceback(最近一次调用最后一次):文件“/ usr / local / bin / gsutil”,第7行,来自gslib.main导入主文件“/ usr / local / lib / python2.7 / site-packages / gslib / main.py“,第39行,在import boto文件”/usr/local/lib/python2.7/site-packages/boto/init.py“,第1216行,在boto.plugin.load_plugins(config)文件“/usr/local/lib/python2.7/site-packages/boto/plugin.py”,第93行,在load_plugins _import_module(文件)文件“/ usr / local / lib /python2.7/site-packages/boto/plugin.py“,第75行,在_import_module中返回imp.load_module(名称,文件,文件名,数据)文件”/usr/lib/python2.6/site-packages/google_compute_engine /boto/boto_config.py“,第30行,来自google_compute_engine导入常量ImportError:无法导入名称常量

任何帮助将不胜感激 . 最终我要做的是从BigQuery获取数据,但遗憾的是Google只允许我们从本地导入Big Query而不是从Big Query导出到本地,所以我坚持使用这个gsutil库已经不断给了我问题 . 我能够运行bq命令就好了 .

到目前为止,我已多次搜索此问题并尝试了各种解决方案,从设置CLOUDSDK_PYTHON到运行gsutil,如“/usr/local/bin/python2.7 / usr / bin / gsutil -l”,但所有内容都给出了上述错误 . 似乎python 2.7正在使用,直到最后一次调用它回到2.6目录 . 我尝试用yum和pip重新安装google cloud sdk,但两人都说它们是最新的 .

1 回答

  • 0

    我放弃了尝试让python 2.6与gsutil一起工作,因为我找不到任何工作,但我确实设法使事情正常工作 .

    我的解决方案是使用python> 2.7(ubuntu 16.04)启动另一个Google Cloud Instance,然后从该框运行gsutil,然后使用gcloud compute ssh远程执行gsutil命令,然后使用gcloud compute scp复制到CentOS 6框 .

    这些是从CentOS 6框运行来复制目录中的所有文件:

    gcloud compute ssh [GC_Host_For_gsutil] --zone = us-west1-a - “gsutil -m cp -r \ [GS_BUCKET_WITH_NO_SLASH] [NFS_DIR_WITH_SLASH];” gcloud compute scp --zone = us-west1-a --recurse \ [GC_Host_For_gsutil]:[NFS_DIR_WITH_SLASH] * [final_destination_no_slash]

相关问题