python - 在 CENTOS 上安装 Google Cloud SDK:找不到正确的 Python 版本
问题描述
当我输入:
yum install google-cloud-sdk
我收到一条错误消息,说它需要大于或等于 2.7 的 python 版本。
我确实安装了 2.7,但是当我输入python -V
它时显示 2.6.6。
我正在使用 CENTOS 6.10
如何修复此错误并安装 Google Cloud SDK?
解决方案
一种可能的方法是不依赖特定于操作系统的预打包 SDK,它附带的依赖项可能会损害您随意安装/升级 SDK 本身或其组件的能力(如果使用不是由 Google 构建的软件包,因为您会需要等待这些包可用)。
为此,您可以从从版本化存档安装(或者如果需要,从存档 GCS 存储桶中下载旧版本)下载最新的通用 linux SDK(google-cloud-sdk-<version>-linux-x86_64.tar.gz
文件) - 您可以在方便的位置解压缩(我个人选择)。它非常独立,甚至允许并排拥有多个 SDK 版本 - 我这样做了,我可以使用符号链接随意在版本之间切换。这是它的样子:/usr/local
my_laptop:/usr/local> ls -la | grep google-cloud-sdk
lrwxrwxrwx 1 root root 20 Feb 26 22:30 google-cloud-sdk -> google-cloud-sdk-236
drwxr-xr-x 1 root root 342 Jun 14 2018 google-cloud-sdk-204
drwxr-xr-x 1 root root 342 Dec 17 2018 google-cloud-sdk-228
drwxr-xr-x 1 root root 342 Feb 26 22:33 google-cloud-sdk-236
为了不必弄乱路径,我只是将所需的 SDK 可执行文件从current
版本符号链接到/usr/local/bin
(我的路径中已经有):
my_laptop:/usr/local/bin> ls -la | grep google-cloud-sdk
lrwxrwxrwx 1 root root 38 Aug 9 2016 gcloud -> /usr/local/google-cloud-sdk/bin/gcloud
lrwxrwxrwx 1 root root 38 Aug 9 2016 gsutil -> /usr/local/google-cloud-sdk/bin/gsutil
一般来说,这应该适用于各种 Linux 变体(我安装的版本在我相当古老的 OpenSuSE 13.3 上工作得很好,并且在完整的操作系统重新安装到 OpenSuSE Leap 15.0 后幸存下来)。
这种方法对您的包管理器应该是完全不透明的(所以不要尝试使用它进行升级),甚至可以作为普通用户完成,不一定是 root(如果需要)。
为了使用 SDK,您可能仍然需要弄清楚您的 python 版本问题。如果python -V
它显示 2.6.6,那么您也安装了该版本,它是 2.7 的首选版本。您的选择:
- 卸载python 2.6
python2.7
使用而不是仅调用pythonpython
:my_laptop:/usr/bin> python2.7 -V Python 2.7.14
更新您的
/usr/bin/python
符号链接以指向您想要的版本:my_laptop:/usr/bin> ls -la | grep python lrwxrwxrwx 1 root root 9 Feb 6 13:04 python -> python2.7 lrwxrwxrwx 1 root root 9 Feb 6 13:04 python2 -> python2.7 -rwxr-xr-x 1 root root 6304 Feb 6 13:05 python2.7 lrwxrwxrwx 1 root root 9 Jan 31 11:36 python3 -> python3.6 -rwxr-xr-x 2 root root 10456 Jan 31 11:36 python3.6
推荐阅读
- php - 在此服务器上未找到请求的 URL /index.php。?
- html - 在溢出的自动容器中完全显示一个 div 只是部分可见
- python - 与原生 sklearn 相比,Dask 性能较慢
- azure-functions - 每个触发器单独设置 ServiceBus 触发器行为参数
- amazon-web-services - 获取所有相关顶点的最佳 gremlin 查询
- backend - 我现在如何存储用户正在执行操作(事件、订单)的单元在服务中
- python - 如何在 Django Rest API 中从父模型中过滤子对象?
- sql-server - 通过 Sql 服务器发送短信或在 Excel 中复制文本并从手机发送
- powershell - 列出打开的 Web URL
- javascript - reactjs中如何获取文件的文件长度