我使用的是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
另一方面,npm
命令,也需要python2,工作正常。
它被pyenv shell
命令暂时修复了,但它只在我关闭终端之前有效。
(解决方案参考这里:https://github.com/pyenv/pyenv/issues/1159)
$ pyenv shell 2.7.14 3.6.4
$ gcloud config list -> Works!
如何永久地解决这个问题?
我最近遇到了这个错误,并找到了解决办法。我正在使用带有虚拟环境的pyenv(pyenv-viritualenv),我试图从我的python 3虚拟环境中运行
。
gcloud
问题是,当你从virtualenv中的某个位置运行
时,它只知道该目录的
文件中指定的python版本。因此,你必须在你的python 3版本之外再指定一个python 2版本来运行。
gcloud
.python-version
pyenv local <virtualenv name> <python 2 version>
我除了做其他相关问题的答案中提到的CLOUDSDK_PYTHON位之外,还做了这个。