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
Lepaskan: 2024-12-08 06:58:11
asal
850 orang telah melayarinya

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)
Salin selepas log masuk

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)
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan