Tai*_*chi 5 macos python-2.7 google-cloud-platform gcloud
我正在使用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!)
Run Code Online (Sandbox Code Playgroud)
但是当我使用gcloud命令时,它不能说找不到python2。
$ gcloud config list
pyenv: python2: command not found
The `python2' command exists in these Python versions:
2.7.14
Run Code Online (Sandbox Code Playgroud)
另一方面,npm也需要python2的命令也可以正常工作。
它由pyenv shell命令临时修复,但是仅在关闭终端后才有效。(解决方案在这里引用:https : //github.com/pyenv/pyenv/issues/1159)
$ pyenv shell 2.7.14 3.6.4
$ gcloud config list -> Works!
Run Code Online (Sandbox Code Playgroud)
如何永久解决此问题?
我最近遇到了这个错误并找到了解决方案。我正在将 pyenv 与虚拟环境(pyenv-virtualenv)一起使用,并且我试图gcloud从我的 python 3 虚拟环境中运行。
问题是,当您gcloud从 virtualenv 中的某个位置运行时,它只知道.python-version该目录的文件中指定的 Python 版本。因此,除了 python 3 版本之外,您还必须指定要运行的 python 2 版本:
pyenv local <virtualenv name> <python 2 version>
Run Code Online (Sandbox Code Playgroud)
除了执行其他相关问题的答案中提到的 CLOUDSDK_PYTHON 位之外,我还这样做了:
export CLOUDSDK_PYTHON=$(which python2)
Run Code Online (Sandbox Code Playgroud)
我将此添加到我的 .bash_profile
| 归档时间: |
|
| 查看次数: |
465 次 |
| 最近记录: |