Saya memiliki proyek Django dengan 2 aplikasi dan sedang menulis beberapa fungsi dalam file utils.py di salah satu aplikasi. Saya ingin memecah ini menjadi dua file terpisah di subdirektori mereka sendiri, jadi saya membuat direktori baru 'utils' satu tingkat di bawah direktori aplikasi dan menempatkan dua file utils1.py dan utils2.py di sana.

Saya memiliki beberapa masalah dengan mengimpor sesuatu dari aplikasi lain, jadi saya akhirnya menghapus ide ini dan memindahkan semuanya kembali ke satu file di direktori dasar aplikasi asli, persis seperti sebelumnya. Sekarang ketika saya menjalankan server, itu tidak mengambil file baru apa pun yang dibuat di dalam aplikasi. Bukan hanya yang saya buat ulang tetapi semua file baru. File yang dibuat sebelum perubahan berjalan dengan baik.

Jadi, dalam ringkasan file utils.py baru yang saya buat ulang di direktori aplikasi tidak berjalan ketika server dev dimulai, dan ketika saya mencoba menjalankan salah satunya secara manual mereka berjalan seperti file python lainnya, tetapi mengimpor dari lokasi lain di proyek tidak diakui.

Tidak ada perubahan lain yang dibuat dan file baru berjalan dengan baik sebelum direktori berubah.

Setelah perubahan:

├── app1
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   ├── models.py
│   ├── permissions.py
│   ├── serializers.py
│   ├── tests.py
│   ├── urls.py
│   ├── utils.py
│   └── views.py
├── manage.py
├── project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── app2
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── utilities        <--- added
        ├── util1.py
        └── util2.py
    ├── migrations
    ├── models.py
    ├── serializers.py
    ├── tests.py
    ├── urls.py
    └── views.py

Setelah kembali ke struktur sebelumnya (tidak berfungsi):

├── app1               <--- new files created here aren't running
│   ├── __init__.py
│   ├── admin.py
│   ├── apps.py
│   ├── migrations
│   ├── models.py
│   ├── permissions.py
│   ├── serializers.py
│   ├── tests.py
│   ├── urls.py
│   ├── utils.py
│   └── views.py
├── manage.py
├── project
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
└── app2                <--- new files created here aren't running
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── util1.py        <--- moved back into app directory
    ├── migrations
    ├── models.py
    ├── util2.py        <--- moved back into app directory
    ├── serializers.py
    ├── tests.py
    ├── urls.py
    └── views.py

Saya sudah mencoba menghapus file pycache, memulai ulang server dev, memulai ulang terminal, dll. tetapi tidak berhasil.

0
wjh18 13 Agustus 2019, 07:59

1 menjawab

Jawaban Terbaik

Aku tahu apa yang sedang terjadi. Asumsi saya adalah bahwa setiap file python baru di aplikasi yang diinstal akan dijalankan secara otomatis, tetapi sesuatu dari file tersebut perlu diimpor terlebih dahulu dari tempat lain dalam proyek. Sebelum perubahan, saya mengimpor file utils.py sehingga server dev menjalankannya, tetapi setelah perubahan tidak ada impor dari tempat lain dalam proyek. Masalah telah diperbaiki dan berfungsi sekarang.

0
wjh18 13 Agustus 2019, 14:37