Mengimport modul daripada pakej adik beradik selalunya boleh menimbulkan cabaran apabila menjalankan skrip daripada baris arahan. Untuk mengurangkan kesukaran ini, kami membentangkan penyelesaian alternatif yang menghapuskan keperluan untuk menggodam sys.path.insert yang kekok.
Kami akan pakejkan kod kami ke dalam satu folder dan susunkannya sebagai berikut:
<br>└── myproject</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">├── api │ ├── api_key.py │ ├── api.py │ └── __init__.py ├── examples │ ├── example_one.py │ ├── example_two.py │ └── __init__.py ├── LICENCE.md ├── README.md └── tests ├── __init__.py └── test_one.py
Selain itu, kami akan mencipta pyproject. toml dalam folder akar untuk menerangkan fail pakej.
Untuk menjadikan pakej kami tersedia untuk import, kami akan memasangnya dalam keadaan boleh diedit menggunakan pip: p> Apabila mengimport modul daripada pakej kami, kami akan menetapkan awalan import dengan myproject., seperti yang ditunjukkan dalam test_one.py:< ;/p> Perhatikan bahawa awalan ini diperlukan hanya untuk import yang tidak akan berfungsi tanpa fail pyproject.toml dan pemasangan pip. Dengan semua persediaan yang diperlukan disediakan, kami boleh menjalankan skrip kami dari baris arahan: Dengan menggabungkan langkah ini, kami telah menyelesaikan isu import pakej adik beradik dengan berkesan dan kini boleh menjalankan skrip daripada baris arahan tanpa menggunakan sys.path hacks. Atas ialah kandungan terperinci Bagaimana untuk Mengelakkan Peretasan `sys.path` Apabila Mengimport daripada Pakej Adik Beradik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!Mengendalikan Import
Menjalankan Skrip
python .myprojectteststest_one.py</pre> ;<br><p>Ini sepatutnya menghasilkan yang diharapkan hasil:</p><br><pra>Saya ialah nilai pulangan daripada api.api!
Kesimpulan