全部产品
Search
文档中心

Alibaba Cloud SDK:FAQ tentang SDK untuk Python

更新时间:Jun 28, 2025

Dokumen ini menjawab pertanyaan umum terkait Alibaba Cloud SDK untuk Python dan bertujuan membantu meningkatkan efisiensi pengembangan Anda.

Prasyarat

  • Python 3.7 atau versi lebih baru telah terpasang.

  • API Alibaba Cloud dapat diakses dari jaringan Anda.

Ikhtisar

Masalah dan solusi

Bagaimana cara menangani kesalahan AccessKey?

Masalah: Pesan kesalahan berikut muncul setelah menjalankan kode, yang menunjukkan bahwa pasangan AccessKey tidak dikonfigurasi dengan benar.

  • Alibaba Cloud SDK V2.0: AttributeError: Objek 'NoneType' tidak memiliki atribut 'get_access_key_id'.

  • Alibaba Cloud SDK V1.0: Error:MissingParameter Parameter input "AccessKeyId" yang wajib untuk memproses permintaan ini tidak diberikan.

Solusi:

  1. Jalankan perintah berikut untuk memeriksa apakah variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET telah dikonfigurasi.

    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%

    Jika pasangan AccessKey yang valid dikembalikan, variabel lingkungan telah dikonfigurasi dengan benar. Jika tidak, konfigurasikan variabel lingkungan sesuai kebutuhan. Untuk informasi lebih lanjut, lihat Konfigurasikan variabel lingkungan di Linux, macOS, dan Windows.

  2. Periksa kesalahan terkait pasangan AccessKey dalam kode.

    Contoh permintaan kesalahan:

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

    Contoh permintaan sukses:

     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']
            )
    Catatan

    os.environ['ALIBABA_CLOUD_ACCESS_KEY_ID'] dan os.environ("ALIBABA_CLOUD_ACCESS_KEY_SECRET") menentukan bahwa ID AccessKey dan rahasia AccessKey diperoleh dari variabel lingkungan ALIBABA_CLOUD_ACCESS_KEY_ID dan ALIBABA_CLOUD_ACCESS_KEY_SECRET.

    Penting

    Untuk mencegah risiko keamanan, jangan tulis pasangan AccessKey dalam kode online.

Apa yang harus saya lakukan jika SDK gagal dipasang?

  • Pastikan versi Python yang valid telah terpasang, seperti Python 3.x.

  • Tambahkan opsi --upgrade saat memasang SDK dengan perintah pip. Ini memastikan versi terbaru dipasang.

pip install --upgrade <SDK_NAME>
  • Jika Anda mengalami masalah izin selama proses pemasangan, seperti saat memasang SDK di direktori sistem pustaka Python, gunakan opsi --user untuk memasang SDK di direktori pengguna alih-alih direktori sistem.

pip install --user <SDK_NAME>
  • Jika beberapa versi Python terpasang di PC Anda, pastikan Anda memasang SDK di versi Python yang digunakan. Misalnya, gunakan python3 alih-alih python dalam kode dan jalankan perintah pip3.

Apa yang harus saya lakukan jika modul gagal diimpor dan kesalahan ModuleNotFoundError dilaporkan?

Pastikan SDK telah terpasang dengan benar. Kemudian, coba impor modul dalam lingkungan Python.

  • Mulai interpreter Python.

python
  • Impor modul.

import <SDK_NAME>

Jika tidak ada kesalahan yang terjadi, SDK telah terpasang dengan benar. Jika kesalahan ModuleNotFoundError atau ImportError terjadi, SDK tidak terpasang dengan benar.

pip install <SDK_NAME>

Apa yang harus saya lakukan jika pesan kesalahan "AttributeError: Objek 'CredentialModel' tidak memiliki atribut 'provider_name'" dikembalikan?

Pesan kesalahan ini menunjukkan upaya untuk mengakses atribut provider_name dari objek CredentialModel, tetapi atribut provider_name tidak ada. Dalam banyak kasus, kesalahan ini disebabkan oleh paket alibabacloud_credentials yang sudah ketinggalan zaman, yang menghasilkan ketidakcocokan antara pustaka kelas dan kompilasi operasi API. Penyebab yang mungkin:

  • Paket dependensi usang: Versi paket alibabacloud_credentials lebih awal dari versi yang diperlukan oleh atribut provider_name dalam kode.

  • Konflik dependensi: Versi alibabacloud_credentials yang salah dimuat karena beberapa paket alibabacloud_credentials ada dalam proyek.

  • Peningkatan dependensi yang salah: Setelah peningkatan, dependensi tidak dipasang ulang atau cache tidak dibersihkan. Akibatnya, versi dependensi sebelumnya masih digunakan.

Solusi:

  1. Dalam file requirements.txt, atur paket dependensi alibabacloud_credentials ke versi terbaru. Contoh:

    alibabacloud_credentials=1.0.1

    Jalankan perintah pip install -r requirements.txt --upgrade untuk meningkatkan paket dependensi.

    Catatan

    Untuk informasi lebih lanjut tentang semua versi yang dirilis dari alibabacloud_credentials, lihat ChangeLog.txt.

  2. Periksa konflik dependensi.

    pip list | grep alibabacloud
    # Jika beberapa versi dependensi ada, hapus versi yang ada dan pasang versi terbaru. Contoh:
    pip uninstall alibabacloud_credentials
    pip install alibabacloud_credentials==1.0.1
    
  3. Bersihkan cache dan pasang ulang versi terbaru.

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

Apa yang harus saya lakukan jika pesan kesalahan berikut dikembalikan: code: 400, Parameter input "AccesskeyId" yang wajib untuk memproses permintaan ini tidak diberikan?

  • Pesan kesalahan dikembalikan karena permintaan yang dikirim ke gateway tidak berisi ID AccessKey.

  • Periksa apakah ID AccessKey Anda telah dikonfigurasi dengan benar saat menggunakan kode sampel lengkap yang diunduh dari OpenAPI Explorer. Konfigurasikan ID AccessKey dan rahasia AccessKey Anda saat memanggil metode utama.

image

Apa yang harus saya lakukan jika pesan kesalahan berikut dikembalikan: Tea.exceptions.TeaException: Error: SignatureDoesNotMatch.MissingHeader code: 400, Header tanda tangan yang ditentukan "accept;connection;content-type;host;user-agent;x-acs-action;x-acs-content-sha256;x-acs-date;x-acs-signature-nonce;x-acs-version" tidak ditemukan?

Pesan kesalahan dikembalikan karena header Connection diatur ke close untuk mengimplementasikan koneksi singkat saat memanggil layanan dalam mode penandatanganan mandiri. Namun, metode tanda tangan V3 tidak kompatibel dengan pengaturan ini, yang menghasilkan kesalahan.

Anda dapat memperbaiki kesalahan ini dengan menggunakan pengaturan berikut: config.signature_algorithm = 'v2'.

Apa yang harus saya lakukan jika pesan kesalahan berikut dikembalikan: Tea.exceptions.TeaException: Koneksi dibatalkan?

Pesan kesalahan dikembalikan karena interval permintaan lebih lama dari yang diharapkan. Server hanya menjaga koneksi persisten selama 30 detik, sedangkan klien menjaga koneksi secara persisten. Dalam hal ini, server menutup koneksi setelah 30 detik. Jika klien memulai permintaan setelah 30 detik, kegagalan permintaan terjadi.

  • Atur header Connection ke close untuk mengimplementasikan koneksi singkat.

  • Konfigurasikan mekanisme ulang untuk memastikan bahwa panggilan diinisiasi dalam 30 detik.

Penting

Mekanisme ulang dapat menyebabkan beberapa operasi jika permintaan dikirim dan diproses berkali-kali. Oleh karena itu, kami sarankan Anda mengonfigurasi mekanisme ulang untuk permintaan yang diinisiasi untuk melakukan operasi kueri, tetapi tidak untuk permintaan yang diinisiasi untuk melakukan operasi buat, hapus, atau ubah.

Apa yang harus saya lakukan jika panggilan API habis waktu tunggunya dan pesan kesalahan "requests.exceptions.Timeout" atau "requests.exceptions.ConnectionError" dikembalikan?

Habis waktu tunggu panggilan API dapat disebabkan oleh beberapa faktor. Bagian berikut menggambarkan penyebab umum dan solusi yang sesuai.

Masalah koneksi jaringan

Penyebab: Permintaan tidak dapat mencapai server karena koneksi jaringan antara klien dan server gagal atau jaringan tidak stabil.

Solusi:

Jalankan perintah ping atau curl untuk menguji konektivitas antara host lokal dan titik akhir layanan cloud. Misalnya, jalankan perintah ping dysmsapi.aliyuncs.com atau curl -v https://dysmsapi.aliyuncs.com untuk menguji konektivitas antara host lokal Anda dan titik akhir Layanan Pesan Singkat (SMS) API.

  • Jika perintah habis waktu tunggunya atau tidak menerima respons, periksa kebijakan pemblokiran pada firewall atau router lokal Anda.

  • Jika respons dikembalikan, kami sarankan Anda menentukan periode timeout yang tepat untuk mencegah kegagalan permintaan yang disebabkan oleh konfigurasi timeout yang tidak tepat. Untuk informasi lebih lanjut, lihat Konfigurasikan periode timeout. Contoh kode:

  • # Periode timeout hanya berlaku untuk permintaan yang menggunakan RuntimeOptions.
    runtimeOptions = RuntimeOptions(
        connect_timeout=5000  # Konfigurasikan periode timeout untuk permintaan koneksi. Unit: milidetik.
    )
Penyebab 2: Waktu pemrosesan permintaan yang diperpanjang

Penyebab: Waktu untuk memproses permintaan API melebihi periode timeout baca yang ditentukan.

Solusi: Perpanjang periode timeout untukrespons API. Untuk informasi lebih lanjut, lihat Konfigurasikan periode timeout. Misalnya, Anda dapat mengonfigurasi parameter timeout baca untuk memperpanjang periode timeout baca. Contoh kode:

# Periode timeout hanya berlaku untuk permintaan yang menggunakan RuntimeOptions.
runtimeOptions = RuntimeOptions(
    read_timeout=10000,  # Konfigurasikan periode timeout untuk permintaan baca. Unit: milidetik.
)

Apa yang harus saya lakukan jika pesan kesalahan "-bash: python3: command not found" dikembalikan di Linux?

Jika Anda telah memasang Python, pesan kesalahan ini mungkin dikembalikan karena tautan simbolis tidak dikonfigurasi dengan benar.

Catatan

Saat pengguna mengakses tautan simbolis, pengguna sebenarnya mengakses file yang ditunjuk oleh tautan simbolis. Misalnya, saat menggunakan Python 3, Anda sebenarnya menggunakan interpreter Python 3.12.

  • Jalankan perintah which python3 pip3 untuk memeriksa apakah tautan simbolis ada dalam sistem. Jika tautan simbolis ada, hapus tautan simbolis.

rm -rf /usr/bin/python3 /usr/bin/pip3
  • Buat tautan simbolis lagi. Temukan direktori instalasi Python, akses direktori bin, dan kemudian temukan pip3.12 dan python3.12. Jalankan perintah berikut untuk membuat tautan simbolis:

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

Apa yang harus saya lakukan jika "Parameter tidak valid" atau kesalahan "MissingRequiredParameter" dilaporkan saat saya memanggil operasi API?

Dalam contoh ini, operasi SendSms dari Layanan Pesan Singkat (SMS) digunakan.

  • Masuk ke OpenAPI Explorer. Pergi ke halaman debugging API dari layanan Alibaba Cloud yang ingin Anda panggil. Temukan operasi API yang ingin Anda panggil.

  • Periksa apakah semua parameter yang diperlukan seperti PhoneNumbers dan SignName telah ditentukan dalam objek permintaan yang dibuat. Dalam contoh ini, objek SendSmsRequest digunakan.

  • Verifikasi bahwa semua parameter yang diperlukan telah ditentukan berdasarkan referensi API.

  • Pastikan nilai parameter yang diperlukan valid. Misalnya, periksa apakah nomor ponsel ditentukan dalam format yang valid.

  • Sebelum SDK mengirim permintaan API, SDK secara otomatis memverifikasi parameter. Jika satu atau lebih parameter yang diperlukan tidak ditentukan, kesalahan seperti MissingRequiredParameter dilaporkan. Misalnya, jika parameter PhoneNumbers tidak ditentukan, kesalahan "MissingPhoneNumbers: code: 400" dilaporkan. Dalam hal ini, tentukan parameter berdasarkan pesan kesalahan.

image

send_sms_request = dysmsapi_20170525_models.SendSmsRequest(
            # Nomor ponsel ke mana Anda ingin mengirim pesan teks.
            phone_numbers='<YOUR_VALUE>',
            # Nama tanda tangan SMS.
            sign_name='<YOUR_VALUE>',
            # Kode template SMS.
            template_code='<YOUR_VALUE>',
            # Variabel template SMS. Tentukan nilai dalam format JSON. Contoh: {"code":"1234","name":"1234","time":"1234"}.
            template_param='{"code":"1234","name":"1234","time":"1234"}'
        )

Apa yang harus saya lakukan jika operasi API gagal dipanggil dan kesalahan "Tea.exceptions.UnretryableException" dilaporkan?

Periksa apakah wilayah yang Anda tentukan mendukung layanan yang ingin Anda panggil. Dalam contoh ini, SMS digunakan. Anda dapat pergi ke halaman utama SMS di OpenAPI Explorer dan melihat titik akhir SMS di berbagai wilayah. Pastikan Anda menentukan titik akhir yang valid.

image

Apa yang harus saya lakukan jika pesan kesalahan berikut dikembalikan: File "/usr/local/python3/lib/python3.6/site-packages/alibabacloud_slb20140515/client.py", line 4, in <module> from Tea.core import TeaCore ModuleNotFoundError: Tidak ada modul bernama 'Tea'?

Pesan kesalahan dikembalikan karena versi pip sudah ketinggalan zaman. Dalam hal ini, dependensi yang terpasang tidak lengkap atau dependensi tertentu dihapus. Anda dapat memperbarui pip dan menjalankan perintah pip install <Installation package> untuk memperbaiki kesalahan ini. Misalnya, jalankan perintah pip install alibabacloud-tea untuk memasang modul Tea.

Penting

Saat kesalahan ini terjadi, sistem mungkin menjalankan perintah pip install tea untuk memasang paket yang tidak relevan. Anda dapat memeriksa organisasi atau individu yang merilis paket di repositori Python Package Index (PyPI) dan mempertimbangkan apakah akan menghapus paket tersebut.

Pertanyaan 13: Apa yang harus saya lakukan jika pesan kesalahan berikut dikembalikan: Command "python setup.py egg_info" gagal dengan kode kesalahan 1 di xxx?

Pesan kesalahan ini dikembalikan karena versi Python atau pip sudah ketinggalan zaman, atau pustaka atau paket yang diperlukan belum terpasang. Akibatnya, SDK tidak dapat bekerja seperti yang diharapkan.

Solusi
  1. Periksa versi Python saat ini.

    Jalankan perintah python -V atau python3 -V untuk memeriksa versi Python saat ini. Jika versi Python lebih awal dari 3.7, lakukan langkah-langkah berikut untuk memperbarui Python. Anda dapat pergi ke situs resmi Python untuk mendapatkan URL unduhan versi Python terbaru dan instruksi instalasi.

    Perbarui Python

    1. Pasang alat dan pustaka yang diperlukan oleh Python.

      sudo yum groupinstall "Development Tools" -y
      sudo yum install openssl-devel bzip2-devel libffi-devel -y
    2. Unduh versi Python yang diperlukan dari situs resmi Python. Dalam contoh ini, Python 3.7.12 digunakan.

      sudo curl -O https://www.python.org/ftp/python/3.7.12/Python-3.7.12.tgz
    3. Ekstrak paket instalasi.

      sudo tar xzf Python-3.7.12.tgz
    4. Kompilasi dan pasang Python.

      cd Python-3.7.12
      sudo ./configure --enable-optimizations
      sudo make altinstall
    5. Verifikasi versi Python.

      python3.7 --version
    6. Jalankan perintah berikut untuk memperbarui pip untuk versi Python baru:

      python3.7 -m ensurepip
      python3.7 -m pip install --upgrade pip
  2. Jika versi Python adalah 3.7 atau lebih baru, penyebab yang mungkin adalah versi pip sudah ketinggalan zaman. Jalankan perintah pip3 install --upgrade pip setuptools untuk memperbarui pip ke versi terbaru. Kemudian, coba jalankan kode Python lagi.

  3. Periksa dan pasang pustaka yang diperlukan.

    Jika versi Python adalah 3.7 atau lebih baru dan masalah tetap ada setelah pip diperbarui, penyebab yang mungkin adalah pustaka terkait belum dipasang. Dalam beberapa kasus, jika pustaka tertentu tidak dipasang, pustaka lain gagal dipasang. Misalnya, jika Anda ingin memasang numpy, Anda harus memasang pustaka matematika terkait seperti blas dan lapack. Jika Anda ingin memasang lxml, Anda harus memasang libxml2-dev dan libxslt1-dev.

    Jalankan perintah berikut untuk memasang pustaka reguler. Dalam contoh ini, lxml dan numpy digunakan.

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

    Paket Python adalah modul atau pustaka yang dirancang untuk meningkatkan dan memperluas Python. Paket Python menyediakan alat dan metode tambahan untuk membantu pengembang menyelesaikan tugas tertentu dengan cara yang nyaman dan efisien. Paket yang diperlukan ditentukan oleh persyaratan proyek tertentu yang sedang Anda kembangkan.

Pertanyaan 14: Apa yang harus saya lakukan jika pesan kesalahan "HTTPSConnectionPool(host='ocr-api.cn-hangzhou.aliyuncs.com', port=443): Maksimum percobaan ulang tercapai dengan url: /?Country=Vietnam (Disebabkan oleh SSLError(SSLEOFError(8, 'EOF terjadi melanggar protokol (_ssl.c:2418)')))" dikembalikan?

Dalam banyak kasus, kesalahan ini disebabkan oleh kegagalan jabat tangan SSL/TLS. Penyebab yang mungkin:

  • Versi SSL/TLS yang digunakan oleh server dan klien tidak kompatibel.

  • Sertifikat SSL pada perangkat lokal mengandung kesalahan. Misalnya, sertifikat SSL telah kedaluwarsa atau rantai sertifikat tidak lengkap.

  • Jabat tangan SSL gagal karena kesalahan konfigurasi jaringan.

Solusi:
  1. Periksa versi SSL/TLS: Pastikan lingkungan Python pada perangkat lokal mendukung versi SSL/TLS yang digunakan server untuk komunikasi. Dalam beberapa kasus, server hanya mendukung TLS 1.2.

    import ssl
    import urllib3
    
    # Buat konteks SSL dan gunakan 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)
    
    # Inisialisasi manajer pool urllib3.
    http = urllib3.PoolManager(context=ssl_context)
    
    # Kirim permintaan.
    response = http.request('GET', 'https://ocr-api.cn-hangzhou.aliyuncs.com/?Country=Vietnam')
    
  2. Periksa masalah lingkungan Python:

    1. Pastikan modul ssl dan versi pustaka urllib3 kompatibel dengan versi Python.

    2. Gunakan lingkungan virtual untuk memasang ulang Python dan dependensi Python:

    python -m venv myenv
    source myenv/bin/activate
    pip install requests urllib3 pyOpenSSL
  3. Periksa kesalahan konfigurasi jaringan.

    1. Pastikan firewall pada perangkat lokal mengizinkan lalu lintas ke port HTTPS (port 443).

    2. Jika proxy digunakan, pastikan konfigurasi proxy benar.

    import requests
    
    # Gunakan 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. Perbarui pustaka requests dan urllib3 untuk menyelesaikan masalah.

    pip install --upgrade requests urllib3
  5. Jika masalah tetap ada setelah pembaruan, masalah tersebut mungkin disebabkan oleh sertifikat lingkungan. Konfigurasikan parameter berikut untuk mengabaikan sertifikat dan menyesuaikan periode timeout:

    # Nonaktifkan verifikasi sertifikat.
    runtimeOptions = RuntimeOptions(
     ignore_ssl=True # Nonaktifkan verifikasi sertifikat SSL. Secara default, verifikasi sertifikat SSL diaktifkan.
    )
    
    # Sesuaikan periode timeout.
    runtimeOptions = RuntimeOptions(
        read_timeout=xxx,  # Periode timeout untuk permintaan baca. Unit: milidetik.
        connect_timeout=xxx  # Periode timeout untuk permintaan koneksi. Unit: milidetik.
    )
  6. Jika masalah tetap ada setelah verifikasi sertifikat SSL dinonaktifkan, atur variabel lingkungan PYTHONHTTPSVERIFY ke 0 untuk menonaktifkan verifikasi sertifikat SSL.

    export PYTHONHTTPSVERIFY=0  # Nonaktifkan verifikasi HTTPS.
  7. Periksa sertifikat SSL pada mesin lokal: Pastikan sertifikat SSL pada mesin lokal sudah diperbarui dan lengkap. Anda dapat menggunakan alat seperti certbot untuk memperbarui dan memasang sertifikat.

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

Kesalahan dasar Python

Pesan kesalahan

Penyebab

Solusi

SyntaxError

Kode mengandung kesalahan sintaks, seperti kesalahan ejaan, kurang tanda titik dua, atau kurung yang tidak berpasangan.

Periksa kode dan pastikan sintaks valid. Gunakan fitur penyorotan sintaks dari lingkungan pengembangan terpadu (IDE) atau editor untuk membantu Anda menemukan kesalahan sintaks.

NameError

Variabel atau fungsi yang akan digunakan tidak terdefinisi.

Pastikan nama variabel atau fungsi valid dan variabel atau fungsi telah didefinisikan atau diimpor dengan benar dalam kode.

TypeError

Operasi atau fungsi tidak kompatibel dengan tipe objek yang akan diterapkan.

Periksa tipe data dalam kode dan pastikan operasi atau fungsi berlaku untuk tipe objek yang akan diterapkan. Anda juga dapat menggunakan fungsi konversi tipe untuk menyelesaikan masalah ketidakcocokan tipe.

IndexError

Indeks yang ditentukan tidak ada dalam daftar, tupel, atau string.

Pastikan indeks berada dalam rentang valid objek. Anda dapat menggunakan pernyataan kondisional atau penanganan pengecualian untuk memeriksa validitas indeks, atau gunakan fungsi pemeriksaan indeks bawaan seperti len().

ValueError

Nilai parameter dalam fungsi tidak valid.

Pastikan nilai parameter yang ditentukan dalam fungsi memenuhi persyaratan terkait. Anda dapat menggunakan pernyataan kondisional atau penanganan pengecualian untuk memverifikasi validitas nilai parameter.

FileNotFoundError

File yang akan dibuka atau diakses tidak ada.

Pastikan jalur file yang ditentukan valid dan periksa apakah file ada. Anda dapat menggunakan pernyataan kondisional atau penanganan pengecualian untuk menangani masalah bahwa file tidak ada.

ZeroDivisionError

Pembagi adalah nol.

Sebelum melakukan operasi pembagian, pastikan pembagi bukan nol. Anda dapat menggunakan pernyataan kondisional atau penanganan pengecualian untuk memeriksa nilai pembagi dan memastikan pembagi bukan nol.

FloatingPointError

Perhitungan bilangan floating-point menghasilkan hasil tak terbatas atau bukan angka (NaN).

Pastikan nilai yang terlibat dalam perhitungan bilangan floating-point berada dalam rentang valid. Anda dapat menggunakan fungsi pemeriksaan nilai untuk memverifikasi validitas nilai dan mengambil tindakan yang sesuai jika terjadi pengecualian.

OverflowError

Perhitungan numerik menghasilkan hasil yang melebihi rentang nilai tipe data saat ini.

Periksa tipe data yang digunakan dalam perhitungan numerik dan pastikan tipe data dapat merepresentasikan rentang nilai hasil perhitungan. Jika Anda perlu menangani nilai numerik besar, Anda dapat menggunakan tipe data yang sesuai atau pustaka pihak ketiga.

BufferError

Data yang akan dibaca atau ditulis melebihi ukuran buffer. Buffer yang akan diakses tidak ada. Operasi pada buffer menghasilkan kesalahan kehabisan memori atau keluar dari batas.

Periksa ukuran buffer dan pastikan jumlah data yang akan dibaca atau ditulis tidak melebihi ukuran buffer. Anda dapat menggunakan pernyataan kondisional atau penanganan pengecualian untuk memverifikasi jumlah data dan mengambil tindakan yang sesuai jika data melebihi ukuran buffer.

EOFError

File kosong atau akhir file dibaca.

Periksa isi file dan pastikan data dapat dibaca dari file. Jika file kosong atau akhir file dibaca, pengecualian EOFError dilemparkan. Anda dapat menggunakan pernyataan kondisional atau penanganan pengecualian untuk memeriksa isi file dan mengambil tindakan yang sesuai jika file kosong atau akhir file dibaca.

Kesalahan SDK Python

Pesan kesalahan

Penyebab

Solusi

aliyunsdkcore.acs_exception.exceptions.ClientException: SDK.InvalidParameter Parameter region_id tidak cocok dengan ^[a-zA-Z0-9_-]+$

Format parameter region_id untuk inisialisasi klien tidak valid.

Masukkan string dalam format cn-<Region>.

SDK.InvalidRegionId

Paket inti versi sebelumnya gagal mengidentifikasi titik akhir.

Perbarui paket aliyun-python-sdk-core ke versi terbaru dan tentukan ID wilayah yang valid.

SDK.ServerUnreachable

Kesalahan jaringan terjadi.

Dalam versi SDK terbaru, kesalahan ini digantikan oleh kesalahan spesifik, seperti SDK.HttpError.

Perbarui paket aliyun-python-sdk-core ke versi terbaru.

SDK.MissingEndpointsFiler

Tidak ada filter titik akhir yang dikonfigurasi.

Konfigurasikan filter titik akhir dan pastikan dapat bekerja dengan baik.

SDK.UnknownServerError

Kesalahan server tidak dikenal terjadi.

Kirim permintaan lagi.

SDK.InvalidSessionExpiration

Waktu kedaluwarsa sesi tidak valid.

Periksa waktu kedaluwarsa sesi dan pastikan itu valid. Jika sesi kedaluwarsa, Anda harus memperbarui sesi atau mendapatkan kredensial sesi lagi.

SDK.NotSupport

Fitur tidak didukung.

Pastikan versi SDK yang Anda gunakan mendukung fitur yang diperlukan.

SDK.EndpointResolvingError

Kesalahan terjadi saat menyelesaikan titik akhir.

Periksa logika penyelesaian titik akhir dan pastikan titik akhir yang valid dapat diselesaikan dan diperoleh dengan benar.

SDK.InvalidServerResponse

Respons yang dikembalikan oleh server tidak valid.

Periksa isi respons yang dikembalikan oleh server dan pastikan respons memenuhi persyaratan layanan Alibaba Cloud. Anda dapat melihat isi respons untuk mendapatkan informasi lebih lanjut dan menyesuaikan isi berdasarkan kebutuhan bisnis Anda.

RequiredArgumentException

Satu atau lebih parameter yang diperlukan tidak ditentukan.

Periksa parameter yang diperlukan dan pastikan nilainya valid.

UnretryableException

Kesalahan jaringan terjadi.

1. Periksa apakah titik akhir yang ditentukan valid.

2. Jalankan perintah ping atau curl untuk memeriksa konektivitas jaringan.

Dukungan teknis

Solusi untuk masalah-masalah di atas dapat membantu Anda menggunakan Alibaba Cloud SDK dengan lebih baik. Jika Anda mengalami masalah lain saat menggunakan Alibaba Cloud SDK, hubungi dukungan teknis Alibaba Cloud dengan menggunakan metode berikut: