Tüm Ürünler
Search
Belge Merkezi

Alibaba Cloud SDK:Python SDK ile ilgili SSS

Son Güncelleme:Oct 07, 2026

Bu konuda, Alibaba Cloud Python SDK hakkında sıkça sorulan soruların yanıtları yer almaktadır. Bu konu, geliştirme verimliliğinizi artırmanıza yardımcı olmayı amaçlamaktadır.

Önkoşullar

  • Python 3,7 veya sonraki bir sürüm yüklüdür.

  • Alibaba Cloud API'lerine ağınız üzerinden erişilebilir.

Genel Bakış

Sorunlar ve çözümler

AccessKey hatalarını nasıl gideririm?

Sorun: Kod çalıştırıldıktan sonra aşağıdaki hata mesajı döndürülür. Hata mesajı, AccessKey çiftinin doğru yapılandırılmadığını gösterir.

  • Alibaba Cloud SDK V2.0: AttributeError: 'NoneType' object has no attribute 'get_access_key_id'.

  • Alibaba Cloud SDK V1.0: Error:MissingParameter The input parameter "AccessKeyId" that is mandatory for processing this request is not supplied.

Çözümler:

  1. ALIBABA_CLOUD_ACCESS_KEY_ID ve ALIBABA_CLOUD_ACCESS_KEY_SECRET ortam değişkenlerinin yapılandırılıp yapılandırılmadığını kontrol etmek için aşağıdaki komutları çalıştırın.

    Linux/macOS

    echo $ALIBABA_CLOUD_ACCESS_KEY_ID
    echo $ALIBABA_CLOUD_ACCESS_KEY_SECRET

    Windows

    echo %ALIBABA_CLOUD_ACCESS_KEY_ID%
    echo %ALIBABA_CLOUD_ACCESS_KEY_SECRET%

    Geçerli bir AccessKey çifti döndürülüyorsa ortam değişkenleri düzgün şekilde yapılandırılmış demektir. AccessKey çifti döndürülmezse veya geçersiz bir AccessKey çifti döndürülürse ortam değişkenlerini gerektiği gibi yapılandırın. Daha fazla bilgi için bkz. Linux, macOS ve Windows'ta ortam değişkenlerini yapılandırma.

  2. Kodda AccessKey çiftiyle ilgili hataları kontrol edin.

    Örnek hatalı istek:

     config = open_api_models.Config(
                access_key_id=os.environ['yourAccessKeyID'],
                access_key_secret=os.environ['yourAccessKeySecret']
            )

    Örnek başarılı istek:

     config = open_api_models.Config(
               access_key_id=os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'],
               access_key_secret=os.environ['ALIBABA_CLOUD_ACCESS_KEY_SECRET']
            )
    Not

    os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] ve os.environ("ALIBABA_CLOUD_ACCESS_KEY_SECRET"), AccessKey ID ve AccessKey secret değerlerinin ALIBABA_CLOUD_ACCESS_KEY_ID ve ALIBABA_CLOUD_ACCESS_KEY_SECRET ortam değişkenlerinden alındığını belirtir.

    Önemli

    Güvenlik risklerini önlemek için AccessKey çiftini kaynak koduna doğrudan yazmayın.

SDK yüklenemediğinde ne yapmalıyım?

  • Python 3.x gibi geçerli bir Python sürümünün yüklü olduğundan emin olun.

  • SDK'yı pip komutuyla yüklerken --upgrade seçeneğini ekleyin. Bu, en son sürümün yüklenmesini sağlar.

pip install --upgrade <SDK_NAME>  
  • Yükleme işlemi sırasında izin sorunlarıyla karşılaşırsanız (örneğin, SDK'yı Python kitaplıklarının sistem dizinine yüklediğinizde) SDK'yı sistem dizini yerine kullanıcı dizinine yüklemek için --user seçeneğini kullanabilirsiniz.

pip install --user <SDK_NAME>  
  • Bilgisayarınızda birden fazla Python sürümü yüklüyse SDK'yı kullandığınız Python sürümüne yüklediğinizden emin olun. Örneğin, kodda python yerine python3 kullanın ve pip3 komutlarını çalıştırın.

Bir modül içe aktarılamadığında ve ModuleNotFoundError hatası bildirildiğinde ne yapmalıyım?

SDK'nın düzgün yüklendiğinden emin olun. Ardından, Python ortamında bir modülü içe aktarmayı deneyin.

  • Python yorumlayıcısını başlatın.

python
  • Bir modülü içe aktarın.

import <SDK_NAME> 

Hata oluşmazsa SDK düzgün yüklenmiş demektir. ModuleNotFoundError veya ImportError hatası oluşursa SDK düzgün yüklenmemiş demektir.

pip install <SDK_NAME>

"AttributeError: 'CredentialModel' object has no attribute 'provider_name'" hata mesajı döndürülürse ne yapmalıyım?

Bu hata mesajı, CredentialModel nesnesinin provider_name özelliğine erişilmeye çalışıldığını ancak provider_name özelliğinin mevcut olmadığını gösterir. Çoğu durumda bu hata, sınıf kitaplığı ile derleme API işlemleri arasında uyumsuzluğa neden olan eski bir alibabacloud_credentials paketinden kaynaklanır. Olası nedenler şunlardır:

  • Eski bağımlılık paketi: alibabacloud_credentials paketinin sürümü, kodda bulunan provider_name özelliği tarafından gereken sürümden daha eskidir.

  • Bağımlılık çakışmaları: Projede birden fazla alibabacloud_credentials paketi bulunduğundan yanlış alibabacloud_credentials sürümü yüklenir.

  • Yanlış bağımlılık yükseltmesi: Yükseltmeden sonra bağımlılık yeniden yüklenmez veya önbellek temizlenmez. Sonuç olarak önceki bağımlılık sürümü kullanılmaya devam eder.

Çözümler:

  1. requirements.txt dosyasında alibabacloud_credentials bağımlılık paketini en son sürüme ayarlayın. Örnek:

    alibabacloud_credentials=1.0.1

    Bağımlılık paketini yükseltmek için pip install -r requirements.txt --upgrade komutunu çalıştırın.

    Not

    alibabacloud_credentials'in yayınlanan tüm sürümlerinin listesi için bkz. ChangeLog.txt.

  2. Bağımlılık çakışmalarını kontrol edin.

    pip list | grep alibabacloud
    # If multiple dependency versions exist, uninstall the existing versions and install the latest version. Example: 
    pip uninstall alibabacloud_credentials
    pip install alibabacloud_credentials==1.0.1
    
  3. Önbelleği temizleyin ve en son sürümü yeniden yükleyin.

    pip cache purge
    pip install -r requirements.txt --force-reinstall
    

Aşağıdaki hata mesajı döndürülürse ne yapmalıyım: code: 400, The input parameter"AccesskeyId" that is mandatory for processing this request is not supplied?

  • Hata mesajı, ağ geçidine gönderilen bir isteğin AccessKey ID içermediği için döndürülür.

  • OpenAPI Explorer'dan indirilen tam örnek kodu kullanırken AccessKey ID'nizin düzgün yapılandırılıp yapılandırılmadığını kontrol edin. Ana yöntemi çağırırken AccessKey ID'nizi ve AccessKey secret değerinizi yapılandırın.

OpenAPI Explorer'daki SDK Sample sekmesinde, main yöntemindeki accessKeyId ve accessKeySecret değerlerini bulun ve yer tutucu değerleri kendi AccessKey bilginizle değiştirin.

Aşağıdaki hata mesajı döndürülürse ne yapmalıyım: Tea.exceptions.TeaException: Error: SignatureDoesNotMatch.MissingHeader code: 400, The specified signed header "accept;connection;content-type;host;user-agent;x-acs-action;x-acs-content-sha256;x-acs-date;x-acs-signature-nonce;x-acs-version" is not found?

Hata mesajı, kendinden imzalı modda bir hizmeti çağırırken kısa ömürlü bağlantıları uygulamak amacıyla Connection üstbilgisi close olarak ayarlandığında döndürülür. Ancak V3 imzalama yöntemi bu ayarla uyumlu değildir ve bu durum hataya neden olur.

Bu hatayı şu ayarı kullanarak düzeltebilirsiniz: config.signature_algorithm = 'v2'.

Aşağıdaki hata mesajı döndürülürse ne yapmalıyım: Tea.exceptions.TeaException: Connection aborted?

Hata mesajı, istek aralığının beklenenden uzun olması nedeniyle döndürülür. Sunucu kalıcı bağlantıyı yalnızca 30 saniye boyunca açık tutar, istemci ise bağlantıyı kalıcı olarak sürdürür. Bu durumda sunucu 30 saniye sonra bağlantıyı kapatır. İstemci 30 saniye sonra bir istek başlatırsa istek başarısız olur.

  • Kısa ömürlü bağlantıları uygulamak için Connection üstbilgisini close olarak ayarlayın.

  • Çağrının 30 saniye içinde başlatılmasını sağlamak için bir yeniden deneme mekanizması yapılandırın.

Önemli

Bir istek birden çok kez gönderilir ve işlenirse yeniden deneme mekanizması birden çok işleme neden olabilir. Bu nedenle, sorgu işlemlerini yürütmek üzere başlatılan istekler için yeniden deneme mekanizması yapılandırmanızı öneririz; ancak oluşturma, silme veya değiştirme işlemlerini yürütmek üzere başlatılan istekler için yeniden deneme mekanizması yapılandırmamanızı öneririz.

API çağrısı zaman aşımına uğradığında ve "requests.exceptions.Timeout" veya "requests.exceptions.ConnectionError" hata mesajı döndürüldüğünde ne yapmalıyım?

API çağrısı zaman aşımı çeşitli faktörlerden kaynaklanabilir. Aşağıdaki bölümde yaygın nedenler ve ilgili çözümler açıklanmaktadır.

Ağ bağlantısı sorunları

Neden: İstemci ve sunucu arasındaki ağ bağlantısı kesildiği veya ağ kararsız olduğu için istek sunucuya ulaşamaz.

Çözümler:

Yerel ana bilgisayar ile cloud hizmetinin uç noktası arasındaki bağlantıyı test etmek için ping veya curl komutunu çalıştırın. Örneğin, yerel ana bilgisayarınız ile Short Message Service (SMS) API'sinin uç noktası arasındaki bağlantıyı test etmek için ping dysmsapi.aliyuncs.com veya curl -v https://dysmsapi.aliyuncs.com komutunu çalıştırın.

  • Komut zaman aşımına uğrar veya yanıt almazsa yerel güvenlik duvarınızda veya yönlendiricilerinizde engelleme ilkelerini kontrol edin.

  • Yanıt döndürülürse yanlış zaman aşımı yapılandırmalarından kaynaklanan istek hatalarını önlemek için uygun bir zaman aşımı süresi belirtmenizi öneririz. Daha fazla bilgi için bkz. Zaman aşımı süresi yapılandırma. Örnek kod:

  • # The timeout period takes effect only for requests that use RuntimeOptions.
    runtimeOptions = RuntimeOptions(
        connect_timeout=5000  # Configure the timeout period for connection requests. Unit: milliseconds.
    )
Neden 2: İsteğin işlenmesinin uzun sürmesi

Neden: API isteğini işleme süresi belirtilen okuma zaman aşımı süresini aşıyor.

Çözüm: API yanıtı için zaman aşımı süresini uzatın. Daha fazla bilgi için bkz. Zaman aşımı süresi yapılandırma. Örneğin, okuma zaman aşımı süresini uzatmak için read timeout parametresini yapılandırabilirsiniz. Örnek kod:

# The timeout period takes effect only for requests that use RuntimeOptions.
runtimeOptions = RuntimeOptions(
    read_timeout=10000,  # Configure the timeout period for read requests. Unit: milliseconds.
)

Linux'ta "-bash: python3: command not found" hata mesajı döndürülürse ne yapmalıyım?

Python'u yüklediyseniz bu hata mesajı sembolik bağlantıların düzgün yapılandırılmamasından dolayı döndürülebilir.

Not

Kullanıcı bir sembolik bağlantıya eriştiğinde aslında sembolik bağlantının işaret ettiği dosyaya erişir. Örneğin, Python 3'ü kullandığınızda aslında Python 3,12 yorumlayıcısını kullanırsınız.

  • Sistemde sembolik bağlantıların olup olmadığını kontrol etmek için which python3 pip3 komutunu çalıştırın. Sembolik bağlantılar varsa bunları silin.

rm -rf /usr/bin/python3 /usr/bin/pip3
  • Sembolik bağlantıları tekrar oluşturun. Python'un kurulum dizinini bulun, bin dizinine gidin ve ardından pip3.12 ile python3.12 dosyalarını bulun. Sembolik bağlantıları oluşturmak için aşağıdaki komutları çalıştırın:

sudo ln -s /usr/local/python3/bin/python3.12 /usr/bin/python3
sudo ln -s /usr/local/python3/bin/pip3.12 /usr/bin/pip3

API işlemi çağrılırken "Invalid parameters" veya "MissingRequiredParameter" hatası bildirilirse ne yapmalıyım?

Bu örnekte Short Message Service (SMS) hizmetinin SendSms işlemi kullanılmaktadır.

  • OpenAPI Explorer'daki API Debugging sayfasına gidin, ardından cloud ürününü ve API'yi seçin.

  • Oluşturulan istek nesnesinde PhoneNumbers ve SignName gibi tüm gerekli parametrelerin belirtilip belirtilmediğini kontrol edin. Bu örnekte SendSmsRequest nesnesi kullanılır.

  • API referansına göre tüm gerekli parametrelerin belirtildiğini doğrulayın.

  • Gerekli parametre değerlerinin geçerli olduğundan emin olun. Örneğin, cep telefonu numaralarının geçerli biçimlerde belirtilip belirtilmediğini kontrol edin.

  • SDK bir API isteği göndermeden önce parametreleri otomatik olarak doğrular. Bir veya daha fazla gerekli parametre belirtilmezse MissingRequiredParameter gibi bir hata bildirilir. Örneğin, PhoneNumbers parametresi belirtilmezse "MissingPhoneNumbers: code: 400" hatası bildirilir. Bu durumda parametreyi hata mesajına göre belirtin.

API'yi telefon numarası parametresi olmadan çağırmak konsolda MissingPhoneNumbers: code: 400 hatasını döndürür.

send_sms_request = dysmsapi_20170525_models.SendSmsRequest(
            # The mobile numbers to which you want to send a text message.
            phone_numbers='<YOUR_VALUE>',
            # The name of the SMS signature.
            sign_name='<YOUR_VALUE>',
            # The code of the SMS template.
            template_code='<YOUR_VALUE>',
            # The variables of the SMS template. Specify the value in the JSON format. Example: {"code":"1234","name":"1234","time":"1234"}.
            template_param='{"code":"1234","name":"1234","time":"1234"}'
        )

API işlemi çağrılamadığında ve "Tea.exceptions.UnretryableException" hatası bildirildiğinde ne yapmalıyım?

Seçtiğiniz bölgenin çağırdığınız hizmeti desteklediğinden emin olun. SMS'i örnek olarak alırsak hizmetin uç noktalarını OpenAPI Explorer üzerindeki ürün sayfasında bulabilirsiniz. Bölgeniz için doğru uç noktayı kullanın.

Ürün ana sayfasındaki Service Area List sekmesine tıklayın. Her bölge için doğru uç noktayı bulmak üzere Region ID ve Service Address sütunlarını kullanın. Örneğin, Çin anakarasındaki bölgeler için SMS uç noktası dysmsapi.aliyuncs.com şeklindedir.

Aşağıdaki hata mesajı döndürülürse ne yapmalıyım: File "/usr/local/python3/lib/python3.6/site-packages/alibabacloud_slb20140515/client.py", line 4, in <module> from Tea.core import TeaCore ModuleNotFoundError: No module named 'Tea'?

Hata mesajı, pip sürümünün eski olması nedeniyle döndürülür. Bu durumda yüklenen bağımlılıklar eksiktir veya belirli bağımlılıklar silinmiştir. Bu hatayı düzeltmek için pip'i güncelleyebilir ve pip install <Kurulum paketi> komutunu çalıştırabilirsiniz. Örneğin, Tea modülünü yüklemek için pip install alibabacloud-tea komutunu çalıştırın.

Önemli

Bu hata oluştuğunda sistem alakasız bir paketi yüklemek için pip install tea komutunu çalıştırabilir. Python Package Index (PyPI) deposunda paketi yayınlayan kuruluşu veya kişiyi kontrol edebilir ve paketi silip silmeyeceğinizi değerlendirebilirsiniz.

Soru 13: Aşağıdaki hata mesajı döndürülürse ne yapmalıyım: Command "python setup.py egg_info" failed with error code 1 in xxx?

Hata mesajı, Python veya pip sürümünün eski olması ya da gerekli kitaplıkların veya paketlerin yüklü olmaması nedeniyle döndürülür. Sonuç olarak SDK beklendiği gibi çalışamaz.

Çözüm
  1. Mevcut Python sürümünü kontrol edin.

    Mevcut Python sürümünü kontrol etmek için python -V veya python3 -V komutunu çalıştırın. Python sürümü 3,7'den önceyse Python'u güncellemek için aşağıdaki adımları uygulayın. En son Python sürümünün indirme URL'sini ve yükleme talimatlarını almak için Python resmi web sitesine gidebilirsiniz.

    Python'u güncelle

    1. Python için gereken araçları ve kitaplıkları yükleyin.

      sudo yum groupinstall "Development Tools" -y
      sudo yum install openssl-devel bzip2-devel libffi-devel -y
    2. Gerekli Python sürümünü Python resmi web sitesinden indirin. Bu örnekte Python 3,7,12 kullanılmaktadır.

      sudo curl -O https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz
    3. Kurulum paketini açın.

      sudo tar xzf Python-3.7.12.tgz
    4. Python'u derleyin ve yükleyin.

      cd Python-3.7.12
      sudo ./configure --enable-optimizations
      sudo make altinstall
    5. Python sürümünü doğrulayın.

      python3.7 --version
    6. Yeni sürüm Python için pip öğesini güncellemek üzere aşağıdaki komutları çalıştırın:

      python3.7 -m ensurepip
      python3.7 -m pip install --upgrade pip
  2. Python sürümü 3,7 veya üzeriyse olası neden pip sürümünün eski olmasıdır. Pip'i en son sürüme güncellemek için pip3 install --upgrade pip setuptools komutunu çalıştırın. Ardından Python kodunu tekrar çalıştırmayı deneyin.

  3. Gerekli kitaplıkları kontrol edin ve yükleyin.

    Python sürümü 3,7 veya üzeriyse ve pip güncellendikten sonra sorun devam ediyorsa olası neden ilgili kitaplıkların yüklü olmamasıdır. Bazı durumlarda, belirtilen kitaplıklar yüklenmezse diğer kitaplıklar yüklenemez. Örneğin, numpy yüklemek istiyorsanız blas ve lapack gibi ilgili matematik kitaplıklarını yüklemeniz gerekir. lxml yüklemek istiyorsanız libxml2-dev ve libxslt1-dev yüklemeniz gerekir.

    Normal kitaplıkları yüklemek için aşağıdaki komutları çalıştırın. Bu örnekte lxml ve numpy kullanılmaktadır.

    sudo yum install libxml2-dev libxslt1-dev -y 
    sudo yum install blas-devel lapack-devel -y
    Not

    Python paketleri, Python'u geliştirmek ve genişletmek için tasarlanmış modüller veya kitaplıklardır. Python paketleri, geliştiricilerin belirli görevleri uygun ve verimli bir şekilde tamamlamasına yardımcı olacak ek araçlar ve yöntemler sağlar. Gerekli paketler, geliştirdiğiniz belirli projenin gereksinimlerine göre belirlenir.

Soru 14: Aşağıdaki hata mesajı döndürülürse ne yapmalıyım: HTTPSConnectionPool(host='ocr-api.cn-hangzhou.aliyuncs.com', port=443): Max retries exceeded with url: /?Country=Vietnam (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:2418)')))?

Çoğu durumda bu hata SSL/TLS el sıkışma hatalarından kaynaklanır. Olası nedenler şunlardır:

  • Sunucu ve istemci tarafından kullanılan SSL/TLS sürümleri uyumlu değildir.

  • Yerel cihazdaki SSL sertifikasında hatalar vardır. Örneğin, SSL sertifikasının süresi dolmuştur veya sertifika zinciri eksiktir.

  • SSL el sıkışmaları ağ yapılandırma hataları nedeniyle başarısız olur.

Çözümler:
  1. SSL/TLS sürümlerini kontrol edin: Yerel cihazdaki Python ortamının sunucunun iletişim için kullandığı SSL/TLS sürümünü desteklediğinden emin olun. Bazı durumlarda sunucu yalnızca TLS 1.2'yi destekler.

    import ssl
    import urllib3
    # Create an SSL context that uses TLS 1.2.
    ssl_context = ssl.create_urllib3_context(ssl.OP_NO_SSLv2, ssl.OP_NO_SSLv3, ssl.OP_NO_TLSv1, ssl.OP_NO_TLSv1_1)
    # Initialize the urllib3 pool manager.
    http = urllib3.PoolManager(context=ssl_context)
    # Send the request.
    response = http.request('GET', 'https://ocr-api.cn-hangzhou.aliyuncs.com/?Country=Vietnam')
              
  2. Python ortamı sorunlarını kontrol edin:

    1. ssl modülünün ve urllib3 kitaplığının sürümünün Python sürümüyle uyumlu olduğundan emin olun.

    2. Python'u ve bağımlılıklarını yeniden yüklemek için sanal bir ortam kullanın.

    python -m venv myenv
    source myenv/bin/activate
    pip install requests urllib3 pyOpenSSL
  3. Ağ yapılandırma hatalarını kontrol edin.

    1. Yerel cihazdaki güvenlik duvarının HTTPS bağlantı noktasına (443 numaralı bağlantı noktası) trafiğe izin verdiğinden emin olun.

    2. Proxy sunucusu kullanıyorsanız doğru yapılandırıldığından emin olun.

    import requests
    # Use a proxy
    proxies = {
        'http': 'http://your-proxy-server:port',
        'https': 'https://your-proxy-server:port'
    }
    response = requests.get(
        'https://ocr-api.cn-hangzhou.aliyuncs.com/?Country=Vietnam',
        proxies=proxies
    )
  4. Sorunu çözmek için requests ve urllib3 kitaplıklarını güncelleyin.

    pip install --upgrade requests urllib3
  5. Güncellemeden sonra sorun devam ederse sorun ortam sertifikasından kaynaklanıyor olabilir. Sertifikayı yoksaymak ve zaman aşımı süresini ayarlamak için aşağıdaki parametreleri yapılandırın:

    # Ignore certificate verification.
    runtimeOptions = RuntimeOptions(
     ignore_ssl=True # Ignores SSL certificate verification. Verification is enabled by default.
    )
    # Adjust the timeout.
    runtimeOptions = RuntimeOptions(
        read_timeout=xxx,  # Read timeout in milliseconds (ms)
        connect_timeout=xxx  # Connection timeout in milliseconds (ms)
    )
  6. SSL sertifika doğrulaması devre dışı bırakıldıktan sonra sorun devam ederse SSL sertifika doğrulamasını devre dışı bırakmak için PYTHONHTTPSVERIFY ortam değişkenini 0 olarak ayarlayın.

    export PYTHONHTTPSVERIFY=0  # Disable HTTPS verification.
  7. Yerel makinedeki SSL sertifikasını kontrol edin: Yerel makinedeki SSL sertifikasının güncel ve eksiksiz olduğundan emin olun. Sertifikaları güncellemek ve yüklemek için certbot gibi bir araç kullanabilirsiniz.

    sudo certbot certonly --standalone --rsa-key-size 4096 --agree-tos --email yo**@email.com

Python'un temel hataları


Hata mesajı


Neden


Çözüm


SyntaxError


Kodda yazım hatası, eksik iki nokta üst üste işareti veya eşleşmeyen parantezler gibi bir sözdizimi hatası vardır.


Kodu kontrol edin ve sözdiziminin geçerli olduğundan emin olun. Sözdizimi hatalarını bulmanıza yardımcı olması için tümleşik geliştirme ortamının (IDE) veya düzenleyicinin sözdizimi vurgulama özelliğini kullanın.


NameError


Kullanılacak değişken veya işlev tanımlanmamış.


Değişkenin veya işlevin adının geçerli olduğunu ve değişkenin veya işlevin kodda düzgün şekilde tanımlandığını veya içe aktarıldığını doğrulayın.


TypeError


İşlem veya işlev, uygulanacak nesnenin türüyle uyumsuz.


Koddaki veri türlerini kontrol edin ve işlemin veya işlevin uygulanacak nesnenin türüne uygun olduğundan emin olun. Tür uyuşmazlığı sorununu çözmek için tür dönüştürme işlevlerini de kullanabilirsiniz.


IndexError


Belirtilen dizin listede, demette veya dizede yok.


Dizinin nesnenin geçerli aralığında olduğundan emin olun. Dizinin geçerliliğini kontrol etmek için koşullu ifadeler veya özel durum işleme kullanabilir ya da len() gibi yerleşik dizin kontrol işlevlerini kullanabilirsiniz.


ValueError


İşlevdeki bir parametre değeri geçersiz.


İşlevde belirtilen parametre değerlerinin ilgili gereksinimleri karşıladığından emin olun. Parametre değerlerinin geçerliliğini doğrulamak için koşullu ifadeler veya özel durum işleme kullanabilirsiniz.


FileNotFoundError


Açılacak veya erişilecek dosya yok.


Belirtilen dosya yolunun geçerli olduğundan emin olun ve dosyanın var olup olmadığını kontrol edin. Dosyanın mevcut olmaması sorununu işlemek için koşullu ifadeler veya özel durum işleme kullanabilirsiniz.


ZeroDivisionError


Bölen sıfırdır.


Bölme işlemi gerçekleştirmeden önce bölenin sıfır olmadığından emin olun. Bölenin değerini kontrol etmek ve bölenin sıfır olmadığından emin olmak için koşullu ifadeler veya özel durum işleme kullanabilirsiniz.


FloatingPointError


Kayan noktalı sayı hesaplama sonsuzluk veya sayı değil (NaN) sonucuna yol açar.


Kayan noktalı sayı hesaplamasına dahil edilen değerlerin geçerli aralıkta olduğundan emin olun. Değerlerin geçerliliğini doğrulamak için değer kontrol işlevlerini kullanabilir ve özel durumlar oluşursa uygun önlemler alabilirsiniz.


OverflowError


Sayısal hesaplama, mevcut veri türünün değer aralığının dışında bir sonuca yol açar.


Sayısal hesaplamada kullanılan veri türünü kontrol edin ve veri türünün hesaplama sonucunun değer aralığını temsil edebileceğinden emin olun. Büyük sayısal değerleri işlemek gerekiyorsa uygun veri türlerini veya üçüncü taraf kitaplıkları kullanabilirsiniz.


BufferError


Okunacak veya yazılacak veri arabelleğin boyutunu aşıyor. Erişilecek arabellek yok. Arabellek üzerindeki işlem bellek yetersizliği veya sınır dışı hatasına neden oluyor.


Arabelleğin boyutunu kontrol edin ve okunacak veya yazılacak veri miktarının arabelleğin boyutunu aşmadığından emin olun. Veri miktarını doğrulamak ve veriler arabelleğin boyutunu aşarsa uygun önlemler almak için koşullu ifadeler veya özel durum işleme kullanabilirsiniz.


EOFError


Boş bir dosya veya dosyanın sonu okundu.


Dosyanın içeriğini kontrol edin ve dosyadan veri okunabildiğinden emin olun. Dosya boşsa veya dosyanın sonu okunmuşsa EOFError özel durumu oluşturulur. Dosyanın içeriğini kontrol etmek ve dosya boşsa veya dosyanın sonu okunmuşsa uygun önlemler almak için koşullu ifadeler veya özel durum işleme kullanabilirsiniz.

Python SDK hataları


Hata mesajı


Neden


Çözüm


aliyunsdkcore.acs_exception.exceptions.ClientException: SDK.InvalidParameter The parameter region_id not match with ^[a-zA-Z0-9_-]+$


İstemci başlatma için region_id parametresinin biçimi geçersiz.


cn-<Bölge> biçiminde bir dize girin.


SDK.InvalidRegionId


Eski sürüm çekirdek paketi uç noktayı tanımlayamıyor.


aliyun-python-sdk-core paketini en son sürüme güncelleyin ve geçerli bir bölge kimliği belirtin.


SDK.ServerUnreachable


Bir ağ hatası oluştu.

En son SDK sürümünde bu hata, SDK.HttpError gibi belirli bir hatayla değiştirilmiştir.

aliyun-python-sdk-core paketini en son sürüme güncelleyin.


SDK.MissingEndpointsFiler


Uç nokta filtresi yapılandırılmamış.


Bir uç nokta filtresi yapılandırın ve düzgün çalışabildiğinden emin olun.


SDK.UnknownServerError


Bilinmeyen bir sunucu hatası oluştu.


İsteği tekrar gönderin.


SDK.InvalidSessionExpiration


Oturum sona erme süresi geçersiz.


Oturum sona erme süresini kontrol edin ve geçerli olduğundan emin olun. Bir oturum sona ererse oturumu güncellemeniz veya bir oturum kimlik bilgisini tekrar almanız gerekir.


SDK.NotSupport


Özellik desteklenmiyor.


Kullandığınız SDK sürümünün gerekli özellikleri desteklediğinden emin olun.


SDK.EndpointResolvingError


Uç nokta çözülürken hata oluştu.


Uç nokta çözümleme mantığını kontrol edin ve geçerli uç noktaların doğru şekilde çözülebildiğinden ve elde edilebildiğinden emin olun.


SDK.InvalidServerResponse


Sunucudan döndürülen yanıt geçersiz.


Sunucudan döndürülen yanıtın içeriğini kontrol edin ve yanıtın Alibaba Cloud hizmetlerinin gereksinimlerini karşıladığından emin olun. Daha fazla bilgi edinmek için yanıtın içeriğini görüntüleyebilir ve iş gereksinimlerinize göre içeriği ayarlayabilirsiniz.


RequiredArgumentException


Bir veya daha fazla gerekli parametre belirtilmemiş.


Gerekli parametreleri kontrol edin ve değerlerinin geçerli olduğundan emin olun.


UnretryableException


Bir ağ hatası oluştu.

1. Belirtilen uç noktanın geçerli olup olmadığını kontrol edin.

2. Ağ bağlantısını kontrol etmek için ping veya curl komutunu çalıştırın.

Teknik destek

Önceki sorunlara yönelik çözümler, Alibaba Cloud SDK'larını daha iyi kullanmanıza yardımcı olabilir. Alibaba Cloud SDK'larını kullanırken başka sorunlarla karşılaşırsanız aşağıdaki yöntemi kullanarak Alibaba Cloud teknik desteğiyle iletişime geçin: