Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengimport dari Pakej Adik Beradik Tanpa Menggunakan Hacks `sys.path`?

Bagaimana untuk Mengimport dari Pakej Adik Beradik Tanpa Menggunakan Hacks `sys.path`?

Linda Hamilton
Lepaskan: 2024-12-08 15:56:13
asal
252 orang telah melayarinya

How to Import from Sibling Packages Without Using `sys.path` Hacks?

Import Pakej Adik Beradik: Penyelesaian untuk Mengelak Peretasan sys.path

Mengimport daripada pakej adik beradik boleh menimbulkan cabaran semasa mengatur pangkalan kod anda. Walaupun sys.path.append hacks menawarkan penyelesaian, terdapat penyelesaian yang lebih elegan yang menghapuskan keperluan untuk sisipan mengganggu ini.

Langkah:

  1. Buat pyproject.toml Fail:
    Tentukan metadata dan kebergantungan pakej anda dalam pyproject.toml fail.
  2. Gunakan Persekitaran Maya:
    Asingkan projek anda daripada kebergantungan sistem dengan mencipta persekitaran maya.
  3. Pasang Projek Anda dalam Keadaan Boleh Sunting:
    Gunakan pip dan bendera -e untuk memasang pakej anda dalam keadaan boleh diedit, memastikan perubahan dilakukan secara automatik dicerminkan.
  4. Ubah suai Import:
    Prepend myproject. kepada import yang gagal sebelum ini, cth., daripada myproject.api import function_name.

Contoh:

Pertimbangkan fail berikut struktur:

  • api/api.py
  • example/example_one.py
  • ujian/ujian _one.py
  • pyproject.toml

api.py:

def function_from_api():
    return 'I am the return value from api.api!'
Salin selepas log masuk

test_one.py:

from myproject.api.api import function_from_api

def test_function():
    print(function_from_api())

if __name__ == '__main__':
    test_function()
Salin selepas log masuk

Kepada jalankan test_one.py, pastikan myproject dipasang dalam keadaan boleh diedit. Kemudian, laksanakan:

python myproject/tests/test_one.py
Salin selepas log masuk

Anda seharusnya melihat output: "Saya adalah nilai pulangan daripada api.api!".

Kesimpulan:

Kaedah ini membolehkan anda untuk mengimport daripada pakej adik beradik tanpa menggunakan penyelesaian godam seperti sys.path.append. Dengan memanfaatkan pyproject.toml dan pemasangan boleh diedit, anda boleh mengekalkan pangkalan kod yang bersih dan modular sambil memudahkan pelanjutan dan ujian yang mudah.

Atas ialah kandungan terperinci Bagaimana untuk Mengimport dari Pakej Adik Beradik Tanpa Menggunakan Hacks `sys.path`?. 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