Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mencipta Pakej Ruang Nama dalam Python untuk Pengedaran Perpustakaan Modular?

Bagaimana untuk Mencipta Pakej Ruang Nama dalam Python untuk Pengedaran Perpustakaan Modular?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-10-22 19:15:02175semak imbas

How to Create Namespace Packages in Python for Modular Library Distribution?

Mencipta Pakej Ruang Nama dalam Python

Pakej ruang nama dalam Python membolehkan anda mengedarkan perpustakaan berkaitan sebagai muat turun berasingan sambil mengekalkan ruang nama yang koheren. Untuk menentukan pakej ruang nama, ikut langkah berikut:

Pra-Python 3.3:

Untuk versi Python sebelum 3.3, gunakan salah satu kaedah berikut:

  • pkgutil.extend_path(): Kaedah ini menambah pakej ruang nama pada laluan carian pakej biasa.
<code class="python">from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)</code>
  • pkg_resources.declare_namespace(): Kaedah ini mengisytiharkan direktori sebagai pakej ruang nama. Walau bagaimanapun, ia tidak berfungsi dengan pakej ruang nama tersirat yang diperkenalkan dalam Python 3.3 dan lebih baru.

Python 3.3 dan Kemudian:

Untuk mencipta pakej ruang nama tersirat, hanya tinggalkan fail __init__.py dalam direktori pakej ruang nama. Kaedah ini lebih disukai kerana ia kalis masa hadapan dan serasi dengan pakej ruang nama yang jelas.

Contoh:

Pertimbangkan struktur direktori berikut:

Package-1/
    namespace/
        module1/
            __init__.py
Package-2/
    namespace/
        module2/
            __init__.py

Dalam contoh ini, Pakej-1 dan Pakej-2 boleh mentakrifkan modul dalam ruang nama ruang nama:

<code class="python">import namespace.module1
import namespace.module2</code>

Atas ialah kandungan terperinci Bagaimana untuk Mencipta Pakej Ruang Nama dalam Python untuk Pengedaran Perpustakaan Modular?. 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