Rumah >pembangunan bahagian belakang >Tutorial Python >Mengapakah `__import__` Gagal Mengimport Submodul Matplotlib Sepenuhnya dan Bagaimana Saya Boleh Membetulkannya?

Mengapakah `__import__` Gagal Mengimport Submodul Matplotlib Sepenuhnya dan Bagaimana Saya Boleh Membetulkannya?

Susan Sarandon
Susan Sarandonasal
2024-12-08 06:58:11865semak imbas

Why Does `__import__` Fail to Fully Import Matplotlib Submodules, and How Can I Fix It?

Mengimport Modul daripada Pembolehubah Rentetan dengan "__import__"

Apabila cuba mendokumentasikan submodul tertentu dalam perpustakaan matplotlib (MPL), ia mungkin diperlukan untuk mengimport submodul ini daripada rentetan. Walau bagaimanapun, menggunakan fungsi "__import__" boleh menghasilkan hasil yang tidak dijangka berbanding dengan pernyataan import standard.

Masalah:

Mengimport submodul menggunakan "__import__" (cth., __import__( 'matplotlib.text')) tidak memuatkan kandungan submodul sepenuhnya seperti yang diharapkan. Apabila membandingkan senarai atribut yang diperoleh daripada kedua-dua "__import__" dan import biasa, adalah jelas bahawa "__import__" termasuk takrifan asas daripada matplotlib bersama-sama dengan elemen luar tetapi tidak mempunyai kelas penting daripada submodul sasaran.

Penyelesaian:

Untuk memuatkan submodul daripada rentetan menggunakan "__import__", nyatakan senarai kosong sebagai hujah kedua (dari senarai):

import matplotlib.text as text
x = dir(text)

i = __import__('matplotlib.text', fromlist='')
y = dir(i)

Kod yang disemak ini berkesan memuatkan submodul yang dikehendaki, menghasilkan senarai atribut yang dijangkakan.

Sebagai alternatif, dalam Python versi 3.1 atau lebih baru , seseorang boleh menggunakan importlib modul:

import importlib

i = importlib.import_module("matplotlib.text")
y = dir(i)

Nota:

  • Untuk import yang melibatkan subfolder (cth., ./feature/email.py), gunakan importlib.import_module ("feature.email").
  • Dalam versi Python sebelum 3.3, Fail __init__.py diperlukan dalam folder fail yang diimport. Walau bagaimanapun, selepas 3.3, keperluan ini telah dialih keluar.

Atas ialah kandungan terperinci Mengapakah `__import__` Gagal Mengimport Submodul Matplotlib Sepenuhnya dan Bagaimana Saya Boleh Membetulkannya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn