首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使python2在终端中有效,gcloud命令也会显示` `pyenv: python2:命令未找到

即使python2在终端中有效,gcloud命令也会显示` `pyenv: python2:命令未找到
EN

Stack Overflow用户
提问于 2019-01-22 10:45:02
回答 2查看 2K关注 0票数 10

我使用的是macOS Mojave 10.14.2和pyenv 1.2.7。

这些是我对pyenv的配置。python2似乎可以在终端中工作。

代码语言:javascript
复制
$ pyenv versions
  system
* 2.7.14
  3.6.4

$ pyenv global
2.7.14
3.6.4

$ pyenv local
2.7.14

$ python2
Python 2.7.14 (default, Sep 12 2018, 16:35:37)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> (It works!)

但是当我使用gcloud命令时,它失败了,因为它无法找到python2。

代码语言:javascript
复制
$ gcloud config list
pyenv: python2: command not found

The `python2' command exists in these Python versions:
  2.7.14

另一方面,也需要python2的npm命令工作得很好。

它被pyenv shell命令临时修复,但它只在我关闭终端之前有效。(这里提供了解决方案:https://github.com/pyenv/pyenv/issues/1159)

代码语言:javascript
复制
$ pyenv shell 2.7.14 3.6.4
$ gcloud config list -> Works!

如何永久解决此问题?

EN

回答 2

Stack Overflow用户

发布于 2019-12-10 10:14:16

我最近遇到了这个错误,并找到了解决方案。我正在使用带有虚拟环境的pyenv (pyenv-viritualenv),并且我试图在我的Python3虚拟环境中运行gcloud

问题是,当您从virtualenv中的某个位置运行gcloud时,它只知道在.python-version文件中为该目录指定的python版本。因此,除了python 3版本之外,还必须指定要运行的python 2版本:

代码语言:javascript
复制
pyenv local <virtualenv name> <python 2 version>

除了在回答其他相关问题时提到的CLOUDSDK_PYTHON bit之外,我还做了这件事:

代码语言:javascript
复制
export CLOUDSDK_PYTHON=$(which python2)

我将此添加到我的.bash_profile

票数 6
EN

Stack Overflow用户

发布于 2021-01-12 13:15:47

如果您在终端上输入python,它会显示不同的python版本。例如,您想要指出3.9.0版本。您可以键入pyenv global 3.9.0

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54300568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档