我使用的是macOS Mojave 10.14.2和pyenv 1.2.7。
这些是我对pyenv的配置。python2似乎可以在终端中工作。
$ 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。
$ 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)
$ pyenv shell 2.7.14 3.6.4
$ gcloud config list -> Works!如何永久解决此问题?
发布于 2019-12-10 10:14:16
我最近遇到了这个错误,并找到了解决方案。我正在使用带有虚拟环境的pyenv (pyenv-viritualenv),并且我试图在我的Python3虚拟环境中运行gcloud。
问题是,当您从virtualenv中的某个位置运行gcloud时,它只知道在.python-version文件中为该目录指定的python版本。因此,除了python 3版本之外,还必须指定要运行的python 2版本:
pyenv local <virtualenv name> <python 2 version>除了在回答其他相关问题时提到的CLOUDSDK_PYTHON bit之外,我还做了这件事:
export CLOUDSDK_PYTHON=$(which python2)我将此添加到我的.bash_profile中
发布于 2021-01-12 13:15:47
如果您在终端上输入python,它会显示不同的python版本。例如,您想要指出3.9.0版本。您可以键入pyenv global 3.9.0
https://stackoverflow.com/questions/54300568
复制相似问题