问题描述
在Windows 10计算机上安装 Google Cloud SDK 时,出现以下错误:
I got the following error when installing the Google Cloud SDK on my Windows 10 computer:
ERROR: gcloud failed to load: 'ascii' codec can't decode byte 0xe1 in position 13: ordinal not in range(128)
gcloud_main = _import_gcloud_main()
import googlecloudsdk.gcloud_main
from googlecloudsdk.calliope import cli
from googlecloudsdk.calliope import backend
from googlecloudsdk.calliope import parser_extensions
from googlecloudsdk.core.updater import update_manager
from googlecloudsdk.core.updater import installers
from googlecloudsdk.core.credentials import store
from googlecloudsdk.core.credentials import creds
from googlecloudsdk.core.credentials import devshell as c_devshell
from oauth2client import client
from oauth2client import crypt
from oauth2client import _openssl_crypt
from OpenSSL import crypto
from OpenSSL import crypto, SSL
from cryptography import x509
from cryptography.x509.base import (
from cryptography.x509.extensions import Extension, ExtensionType
from asn1crypto.keys import PublicKeyInfo
from ._elliptic_curve import (
from ._int import inverse_mod
from ._perf._big_num_ctypes import libcrypto
libcrypto_path = find_library('crypto')
fname = os.path.join(directory, name)
result_path = result_path + p_path
This usually indicates corruption in your gcloud installation or problems with your Python interpreter.
Please verify that the following is the path to a working Python 2.7 executable:
C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\python.exe
If it is not, please set the CLOUDSDK_PYTHON environment variable to point to a working Python 2.7 executable.
If you are still experiencing problems, please reinstall the Cloud SDK using the instructions here:
https://cloud.google.com/sdk/
Traceback (most recent call last):
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\\bin\bootstrapping\install.py", line 12, in <module>
import bootstrapping
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\bin\bootstrapping\bootstrapping.py", line 44, in <module>
from googlecloudsdk.core.credentials import store as c_store
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\lib\googlecloudsdk\core\credentials\store.py", line 35, in <module>
from googlecloudsdk.core.credentials import creds
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\lib\googlecloudsdk\core\credentials\creds.py", line 34, in <module>
from googlecloudsdk.core.credentials import devshell as c_devshell
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\lib\googlecloudsdk\core\credentials\devshell.py", line 30, in <module>
from oauth2client import client
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\lib\third_party\oauth2client\client.py", line 51, in <module>
from oauth2client import crypt
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\lib\third_party\oauth2client\crypt.py", line 45, in <module>
from oauth2client import _openssl_crypt
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\lib\third_party\oauth2client\_openssl_crypt.py", line 16, in <module>
from OpenSSL import crypto
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\site-packages\OpenSSL\__init__.py", line 8, in <module>
from OpenSSL import crypto, SSL
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\site-packages\OpenSSL\crypto.py", line 12, in <module>
from cryptography import x509
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\site-packages\cryptography\x509\__init__.py", line 9, in <module>
from cryptography.x509.base import (
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\site-packages\cryptography\x509\base.py", line 16, in <module>
from cryptography.x509.extensions import Extension, ExtensionType
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\site-packages\cryptography\x509\extensions.py", line 13, in <module>
from asn1crypto.keys import PublicKeyInfo
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\site-packages\asn1crypto\keys.py", line 22, in <module>
from ._elliptic_curve import (
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\site-packages\asn1crypto\_elliptic_curve.py", line 51, in <module>
from ._int import inverse_mod
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\site-packages\asn1crypto\_int.py", line 56, in <module>
from ._perf._big_num_ctypes import libcrypto
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\site-packages\asn1crypto\_perf\_big_num_ctypes.py", line 31, in <module>
libcrypto_path = find_library('crypto')
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\ctypes\util.py", line 53, in find_library
fname = os.path.join(directory, name)
File "C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\lib\ntpath.py", line 85, in join
result_path = result_path + p_path
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 13: ordinal not in range(128)
Failed to install.
我尝试重新下载安装程序,我以管理员权限运行它,并且选择了一个没有任何非ASCII字符或空格的安装文件夹.
I have tried redownloading the installer, I run it with admin rights and I have choosen an install folder without any non-ascii characters or spaces.
我还验证了安装程序是否成功设置了python,更具体地说,我在C:\ AndroidSdk \ CloudSdk \ google-cloud-sdk \ platform \ bundledpython \ python.exe拥有python版本2.7.13
I also verified that the installer set up the python successfully, more specifically I have Python version 2.7.13 at C:\AndroidSdk\CloudSdk\google-cloud-sdk\platform\bundledpython\python.exe
我也曾尝试设置 CLOUDSDK_PYTHON
变量,但没有成功.
I also have tried to set the CLOUDSDK_PYTHON
variable without success.
注意:我看到了这个问题,但是我有另一个版本(213.0.0)的cloud-sdk而且我没有在代码中找到提到的部分,所以我不认为这是重复的问题.
Note: I saw this question, but I have a different version (213.0.0) of the cloud-sdk and I didn't find the mentioned part in my code, so I don't think this is a duplicate question.
编辑1 :
我的ntpath.py第63-90行:
My ntpath.py line 63-90:
def join(path, *paths):
"""Join two or more pathname components, inserting "\\" as needed."""
result_drive, result_path = splitdrive(path)
for p in paths:
p_drive, p_path = splitdrive(p)
if p_path and p_path[0] in '\\/':
# Second path is absolute
if p_drive or not result_drive:
result_drive = p_drive
result_path = p_path
continue
elif p_drive and p_drive != result_drive:
if p_drive.lower() != result_drive.lower():
# Different drives => ignore the first path entirely
result_drive = p_drive
result_path = p_path
continue
# Same drive in different case
result_drive = p_drive
# Second path is relative to the first
if result_path and result_path[-1] not in '\\/':
result_path = result_path + '\\'
result_path = result_path + p_path #85
## add separator between UNC and non-absolute path
if (result_path and result_path[0] not in '\\/' and
result_drive and result_drive[-1:] != ':'):
return result_drive + sep + result_path
return result_drive + result_path
编辑2 :
谢谢您的建议,我也检查了这些SO问题和答案,但找不到解决方法:
Thank you for your suggestions I have checked these SO questions and answers also, but I could not find a solution:
UnicodeDecodeError:"ascii"编解码器可以't解码位置13的字节0xe2:序数不在范围(128)
Bitbucket管道:gcloud崩溃(UnicodeDecodeError)
请注意,我在gcloud路径中没有任何非ASCII字符,我已使用以下命令对其进行了检查: gci -recurse.|其中{$ _.Name -match"[^ \ u0000- \ u007F]"}
Note that I do not have any non-ascii characters in gcloud path, I have checked it with the following command: gci -recurse . | where {$_.Name -match "[^\u0000-\u007F]"}
还有其他解决方法吗?
推荐答案
仅列出要尝试的事情:
-
从 https://www.python.org/安装Pythondownloads/release/python-2715/.记住
python
二进制文件的位置.将其设置为CLOUDSDK_PYTHON
install Python from https://www.python.org/downloads/release/python-2715/. Remember the location of the
python
binary. Set that asCLOUDSDK_PYTHON
显示带有变量集的打印输出.
Show the printout with the variable set.
确保确实设置了变量.
在 C:\
(或 C:\ AndroidSdk
,但最好是 C:\
)中:运行 https:/中的gci
命令/superuser.com/questions/237533/find-files-with-non-ascii-characters-in-filenames-in-windows-xp ,显示输出.或从相同的问题运行python程序.
In C:\
(or C:\AndroidSdk
, but optimally C:\
): Run the gci
command in https://superuser.com/questions/237533/find-files-with-non-ascii-characters-in-filenames-in-windows-xp, show the output. Or run the python program from that same question.
可以通过4找到,但是第13个字符似乎是 \
.尝试重新创建目录,给 AndroidSDK
一个短/长的名称,看看它是否仍然是第13个字符
would be found by 4., but the 13th character seems to be the \
. Try to re-create the directory, giving the AndroidSDK
a shorter/longer name, see if it still is the 13th character
这篇关于Google Cloud SDK安装失败UnicodeDecodeError:'ascii'编解码器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!