Saya memiliki repositori kode sumber yang sangat biasa, seperti struktur berikut:
aProject
|-----> __init__.py
|-----> src
| |-----> __init__.py
| |-----> file1.py
| |-----> file2.py
|
|-----> test
|-----> __init__.py
|-----> test_file1.py
|-----> augmentationFile.py
Unik untuk kasus saya, test_file1.py menggunakan augmentationFile.py yang mereferensikan direktori src dan pernyataan from src import *
di dalam augmentationFile.py berhasil menemukan modul.
Saya dapat menjalankan modul unittest dari direktori utama aProject dan sys.path di dalam augmentationFile.py ditampilkan sebagai argumen pertamanya. Ini memungkinkan python menemukan direktori src relatif.
Namun, ketika saya menjalankan dari direktori aProject, kali ini menggunakan python test/augmentationFile.py
, python menyetel sys.path[0] ke folder pengujian dan tidak dapat menyelesaikan pernyataan from src import *
dan mengeluh.
Bagaimana cara memberi tahu juru bahasa python (saya mungkin salah menemukan tanda yang sesuai dengan membaca python 3 dokumen di cmdline) untuk menyimpulkan direktori dengan benar? Salah satu opsi yang terlintas di benak saya adalah mengubah pernyataan import augmentationFile.py menjadi pernyataan if yang memeriksa sys.path dan memutuskan apakah akan mengimpor dari ..src atau src. Harus mengubah kode sumber seperti ini dalam setiap situasi serupa membuat saya takut. Oleh karena itu, saya bertanya apakah dan bagaimana mungkin memberi tahu penerjemah, untuk menyelesaikan jalur relatif dengan mempertimbangkan direktori kerja saat ini? Terima kasih,