Saya telah mengembangkan aplikasi web Django yang disebarkan pada server Apache dengan WSGI, dan semuanya berjalan lancar. Hari ini, saya membuat beberapa perubahan kecil pada aplikasi saya admin.py
dalam upaya untuk menyesuaikan antarmuka Admin Django bawaan, dan awalnya membuat kesalahan sintaks (tanda kurung tidak tertutup). Ini berarti bahwa ketika saya menyentuh wsgi.py
dan memuat kode (saya menjalankan WSGI dalam mode daemon di host virtual saya), situs web saya diganti dengan Kesalahan Server Internal karena WSGI berhenti ketika terjadi kesalahan sintaksis.
Jadi saya memperbaiki kesalahan sintaks, memeriksa bahwa saya tidak memilikinya lagi manage.py check
, dan menyentuh wsgi.py
untuk menerapkan ulang. Tetapi situs web saya masih menampilkan Kesalahan Server Internal! Memeriksa log Apache, inilah yang saya lihat:
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Create interpreter 'quotes.cs.cornell.edu|'.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/extra/www/html/quotes/quotes_django' to path.
[Sun Nov 23 13:52:46 2014] [info] mod_wsgi (pid=19093): Adding '/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/' to path.
[Sun Nov 23 13:52:46 2014] [info] [client 128.84.33.19] mod_wsgi (pid=19093, process='quotes.cs.cornell.edu',
application='quotes.cs.cornell.edu|'): Loading WSGI script '/extra/www/html/quotes/quotes_django/quotes_django/
wsgi.py'.
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Target WSGI script '/extra/www/html/
quotes/quotes_django/quotes_django/wsgi.py' cannot be loaded as Python module.
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Exception occurred processing WSGI
script '/extra/www/html/quotes/quotes_django/quotes_django/wsgi.py'.
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] Traceback (most recent call last):
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/extra/www/html/quotes/quotes_django/
quotes_django/wsgi.py", line 14, in <module>
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] application = get_wsgi_application()
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/core/wsgi.py", line 14, in get_wsgi_application
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] django.setup()
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/__init__.py", line 21, in setup
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] apps.populate(settings.INSTALLED_APPS)
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/apps/registry.py", line 115, in populate
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] app_config.ready()
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/contrib/admin/apps.py", line 22, in ready
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] self.module.autodiscover()
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/contrib/admin/__init__.py", line 23, in autodiscover
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] autodiscover_modules('admin', register_to=site)
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/utils/module_loading.py", line 74, in autodiscover_modules
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] import_module('%s.%s' % (app_config.name,
module_to_search))
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/usr/lib64/python2.7/importlib/__init__.py", line
37, in import_module
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] __import__(name)
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] File "/extra/www/html/quotes/quotes_django/quotespage/
admin.py", line 25
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] approve_quotes.short_description = "Approve selected
quotes"
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] ^
[Sun Nov 23 13:52:46 2014] [error] [client 128.84.33.19] SyntaxError: invalid syntax
[Sun Nov 23 13:53:36 2014] [info] [client 128.84.33.19] mod_wsgi (pid=19093, process='quotes.cs.cornell.edu',
application='quotes.cs.cornell.edu|'): Loading WSGI script '/extra/www/html/quotes/quotes_django/quotes_django/
wsgi.py'.
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Target WSGI script '/extra/www/html/
quotes/quotes_django/quotes_django/wsgi.py' cannot be loaded as Python module.
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] mod_wsgi (pid=19093): Exception occurred processing WSGI
script '/extra/www/html/quotes/quotes_django/quotes_django/wsgi.py'.
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] Traceback (most recent call last):
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] File "/extra/www/html/quotes/quotes_django/
quotes_django/wsgi.py", line 14, in <module>
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] application = get_wsgi_application()
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/core/wsgi.py", line 14, in get_wsgi_application
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] django.setup()
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/__init__.py", line 21, in setup
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] apps.populate(settings.INSTALLED_APPS)
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] File "/opt/rh/python27/root/usr/lib64/python2.7/site-
packages/django/apps/registry.py", line 78, in populate
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] raise RuntimeError("populate() isn't reentrant")
[Sun Nov 23 13:53:36 2014] [error] [client 128.84.33.19] RuntimeError: populate() isn't reentrant
Rangkaian kesalahan pertama menunjukkan WSGI gagal karena kesalahan sintaks di my admin.py
. Namun demikian, rangkaian kesalahan kedua tampaknya memperlihatkan kesalahan internal ke Django:
RuntimeError: populate() isn't reentrant
terlempar dari populate
metode registry.py
.
Googling pesan kesalahan ini mengembalikan sangat sedikit informasi, tidak satupun darinya dari dokumentasi Django. Rupanya, hal itu terkadang bisa terjadi jika Anda menamai aplikasi dua kali di aplikasi Anda settings.py
, tetapi saya tidak melakukannya. Lebih penting lagi, saya belum berubah settings.py
sejak titik di mana situs web berfungsi dengan baik - satu-satunya hal yang saya ubah adalah admin.py
.
Saya mencoba mengembalikan semua perubahan yang saya buat, jadi semua kode Python saya kembali ke keadaan semula ketika situs web berfungsi - dan saya masih mendapatkan populate() isn't reentrant
kesalahan ketika saya mencoba membuat WSGI memuat ulang kode!
Saya juga mencoba mengomentari aplikasi yang berbeda di bagian INSTALLED_APPS settings.py
, dan bahkan dengan hanya 'django.contrib.staticfiles' yang diaktifkan, kesalahan masih terjadi. Anehnya, saya masih mendapatkan kesalahan meskipun saya mengomentari semua aplikasi - Django melempar kesalahan bahkan ketika tidak memuat aplikasi apapun!
Apakah ada yang tahu apa yang terjadi di sini? Atau ada cara yang lebih baik bagi saya untuk men-debug kesalahan ini, karena penelusuran kembali di log Apache cukup tidak membantu?
Catatan: Saya menggunakan Django 1.7, Apache 2.2, dan Python 2.7.
sumber
wsgi.py
menghasilkan kesalahan Apache yang sama, dan file .pyc tidak dibuat ulang.Jawaban:
Ini disebabkan oleh bug dalam pengaturan Django Anda di suatu tempat. Sayangnya, Django menyembunyikan kutu di balik pesan galat yang umum dan tidak berguna ini.
Untuk mengungkap masalah sebenarnya, buka
django/apps/registry.py
dan sekitar baris 80, ganti:dengan:
Ini akan mengijinkan Django untuk melanjutkan memuat, dan mengungkapkan kesalahan sebenarnya.
Saya mengalami kesalahan ini karena beberapa penyebab berbeda. Dulu karena saya mengalami impor yang buruk di salah satu aplikasi saya admin.py.
sumber
django.core.exceptions.ImproperlyConfigured: psycopg2_version 2.5.4 or newer is required; you have 2.5 (dt dec pq3 ext)
pip install --upgrade psycopg2
dan memperbaikinya.Administrator server saya memulai ulang Apache, dan itu secara ajaib memperbaiki masalah ini. File Python yang sama persis dimuat tanpa menyebabkan
populate() isn't reentrant
. Saya bahkan mencoba memuat file lain dengan kesalahan sintaksis, lalu memperbaikinya, dan server dapat memuat file baru dan berjalan dengan benar tanpa masalah.Saya masih tidak tahu apa yang salah, tapi saya tandai ini sebagai jawaban karena masalahnya sudah hilang. (Yah, saya akan menandainya sebagai dijawab segera setelah StackOverflow mengizinkan saya menerima jawaban saya sendiri.)
Pembaruan : Setelah terus mendapatkan kesalahan ini ketika saya tidak sengaja mengunggah Python dengan kesalahan sintaks, saya menemukan solusi yang lebih mudah daripada memulai ulang Apache. Ketika WSGI mulai membuat
populate() isn't reentrant
kesalahan, saya mengganti proyek Django sayawsgi.py
dengan fungsi sederhana ini:Kemudian saya memuat ulang situs web saya, dan proses daemon WSGI dimulai ulang (yang dapat saya ketahui dengan melihat log Apache, meskipun situs web tersebut masih menampilkan kesalahan 500 yang sama).
Jika saya kemudian mengubah
wsgi.py
kembali ke normal dan memuat ulang lagi, WSGI berhasil mengambil kode saya tanpa membuangpopulate() isn't reentrant
(dengan asumsi saya tidak memiliki kesalahan sintaks saat ini). Jadi keseluruhan Apache tidak perlu dimulai ulang, cukup proses WSGI, dan saya dapat melakukannya tanpa hak akses root.sumber
startup-timeout
opsi untuk mode daemon mod_wsgi dalam versi mod_wsgi yang lebih baru yang membantu dalam memulihkan dari kesalahan sementara ketika Django sedang dijalankan, seperti database tidak tersedia. Batas waktu akan menyebabkan proses dimulai ulang secara otomatis jika aplikasi WSGI tidak memuat dengan benar setelah jangka waktu habis. Bahkan itu tidak akan membantu jika Anda memiliki masalah permanen dengan kode Anda sendiri. Dalam hal ini, cari kesalahan pertama, bukanpopulate()
kesalahan karena itu akan memberikan alasan sebenarnya kode Anda gagal.Saya tahu ini adalah jawaban lama tetapi saya akan berkontribusi dengan solusi saya:
Sebagai cara untuk mendiagnosis sumber masalah yang dijalankan
manage.py check
dan lihat apakah Anda menemukan sesuatu di sanaDalam kasus saya, persyaratan yang sudah ketinggalan zaman adalah masalahnya dan django gagal mengimpor submodul
Pastikan bahwa persyaratan Anda mutakhir
sumber
manage.py check
saya menemukan masalahnya. Terima kasih.Ini bukan respon tapi refleksi.
Ketika anda mengupgrade ke django 1.7 dan anda mendapatkan kesalahan 500 dan memuat ulang halaman anda, Apache berkata "populate () tidak reentrant". Saya pikir ketika Anda memuat halaman Anda, Apache memuat semua modul yang Anda butuhkan untuk aplikasi Anda dan ketika kesalahan ditangani, itu tidak membongkar modul. Jadi, ketika Anda memuat ulang halaman Anda, apache memuat lagi modul-modul ini tetapi sudah dimuat. Jadi, Apache mengatakan "populate () tidak reentrant".
Saya memiliki dua tindakan untuk memperbaikinya: Mulai ulang apache, atau perbaiki kesalahan yang menangani kesalahan 5OO pertama.
Coba mulai ulang apache dengan:
Saya harap ini akan membantu Anda.
sumber
Jika Anda mendapatkan kesalahan ini saat menggunakan Google App Engine, periksa log Anda untuk menemukan kesalahan lain yang mungkin menyebabkan hal ini. Saya mendapatkan:
ImproperlyConfigured: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No module named _sqlite3
Anda tidak dapat menggunakan SQLite dengan Google App Engine jadi mengomentari
DATABASES
bagiansettings.py
menghentikan kesalahan itu dan jugaRuntimeError("populate() isn't reentrant")
kesalahan tersebut.sumber
Anda mungkin dapat memperbaikinya tanpa memulai ulang Apache dengan menyentuh file (selain wsgi.py) yang ada di awal proses pemuatan. Misalnya, file pengaturan Anda:
Saya juga belum menyelesaikan ini dengan benar, tetapi info lebih lanjut dalam pertanyaan saya di sini: Pemantauan perubahan kode tidak berfungsi dengan Django 1.7 pada mod-wsgi
sumber
Apache menyimpan file wsgi di cache-nya. Nonaktifkan cache Apache dari file python
Jadi pertama hapus file wsgi dan restart acpache Anda lalu tambahkan file wsgi lagi dan restart apache.
sumber
Saya baru saja menghadapi masalah yang sama jadi saya mulai melihat-lihat.
Sekarang saya sudah membuatnya berfungsi, jadi saya pikir saya harus membaginya dengan kalian!
Yang saya lakukan hanyalah melakukannya
chown user:group /to/path -R
danchmod 770 /to/path -R
lagi dan itu berhasil.sumber
Ini tampak seperti kumpulan respons valid yang bagus untuk kesalahan Apache mod-wsgi yang sama, setiap pria memposting yang berfungsi untuknya, jadi ini milik saya:
Jangan lupa untuk memperbarui persyaratan proyek Anda setelah menerapkan :)
sumber
Saya mengalami masalah yang sama, dan sumber kesalahan bagi saya hanyalah kesalahan sintaks pada file yang saya kerjakan. Setelah memperbaiki kesalahan ketik,
populate() is not reentrant
kesalahan tersebut menghilang.Jika anda menjalankan django dari skrip wsgi, anda mungkin dapat mengenali kesalahan ketik hanya dengan menjalankan skrip wsgi dari baris perintah. Sebagai contoh:
sumber
Kesalahan ini juga dihasilkan jika tidak konsistennya penggunaan spasi dan tab dalam kode.
sumber
Pengaturan: Ubuntu 14.04, Django 1.10, Python 3.5 (dalam
virtualenv
).Saya mencoba banyak solusi ini tanpa hasil, tetapi kemudian saya perhatikan bahwa log kesalahan Apache berisi dua kesalahan berbeda dalam kasus saya. Satu yang terjadi ketika seseorang mencoba mengunjungi halaman, yang lain terjadi saat memulai. Saya melewatkan startup yang satu karena saya biasanya mencoba menyegarkan halaman beberapa kali dan dengan demikian hanya melihat kesalahan saat dikunjungi berulang beberapa kali.
Saya kemudian mencari solusi untuk kesalahan startup dan solusi untuk pertanyaan ini berhasil untuk saya . Singkatnya, ini melibatkan pembaruan
mod_wsgi
paket secara tidak langsung.Saya telah menerima peringatan selama berbulan-bulan tentang ketidakcocokan dalam
mod_wsgi
versi, tetapi tiba-tiba itu mengakibatkan kesalahan Apache 500. Tidak masuk akal bagiku.Dugaan saya adalah bahwa
RuntimeError: populate() isn't reentrant
kesalahan ini biasanya merupakan tanda bahwa seseorang harus mencari kesalahan startup, yang menunjukkan masalah sebenarnya.sedang berkunjung
memulai
sumber
populate()
masalah sama sekali dan bagi saya sepertinya masalah yang sama sekali berbeda, jadi saya tidak dapat melihat bagaimana menurut Anda itu menyelesaikan masalah yang sama. Sejauh yang orang tahu, Anda memiliki masalah berbeda yang seharusnya Anda ajukan pertanyaan terpisah pada awalnya daripada membingungkan tanggapan di sini untuk apa yang tampak seperti masalah berbeda berdasarkan detail di pos lain itu ..Saya tahu sudah lama sejak pertanyaan ini diajukan, tetapi saya baru saja mengalami masalah ini karena masalah yang belum saya bahas di sini. Saya mendapatkan
RuntimeError: populate() isn't reentrant
kesalahan karena SELinux pada CentOS 7. Saya meminta Django dilayani dari direktori home, dan saya hanya perlu mengaktifkan SELinux boolean yang memungkinkan membaca direktori home, karena kesalahan populate () disebabkan oleh masalah perizinan. Solusi bagi saya adalahsetsebool -P httpd_read_user_content 1
. Saya harap ini membantu seseorang yang mengalami masalah ini.sumber
chcon
untuk mengubah konteks.so
file masalah menjadihttpd_sys_script_exec_t
.Banyaknya jawaban membuatnya jelas; ini adalah kesalahan umum yang dapat memiliki beberapa akar penyebab, biasanya terkait dengan memuat Apache / WSGI.
Semua jawaban di halaman ini harus berfungsi sebagai semacam daftar periksa, dan dalam hal itu saya ingin menambahkan akar penyebab dari kesalahan saya ini: kegagalan untuk menambahkan 'import os' ke file settings.py Anda.
Secara khusus, kami memiliki pengembang di tim kami yang bermaksud untuk menghapus paket yang tidak dibutuhkan, dan sebaliknya menghapus 'import os' dari bagian atas file production settings.py. Setelah apache dimulai ulang, aplikasi kami tidak akan dimulai ulang dan kami menerima kesalahan 'RuntimeError: populate () not reentrant' yang ditakuti.
Sebuah 'python manage.py check' cepat tidak mengungkapkan masalah, tapi 'python settings.py' melakukannya; paket os tidak dimuat.
Jika Anda mendapatkan kesalahan ini, fokuskan pencarian Anda untuk memeriksa file settings.py Anda dan juga file WSGI Anda.
sumber
reentrant
kesalahan. Dalam mode daemon, pastikan juga Anda menggunakanstartup-timeout
opsi jika Anda mengalami masalah ini karena kesalahan sementara, daripada kesalahan pengkodean. Setidaknya dengan cara itu dapat pulih secara otomatis.RuntimeError: populate() isn't reentrant
Bisa apa saja, itulah mengapa ada begitu banyak jawaban berbeda untuk pertanyaan ini.
Triknya adalah dengan melihat pesan kesalahan tepat sebelum
RuntimeError
. Dalam kasus Anda, tampaknya ada kesalahan sintaks pada file /extra/www/htmlquotes/quotes_django/quotespage/admin.py pada baris 15, lihat:sumber
Catatan tentang AWS Elastic Beanstalk: Default
settings.py
yang ditulis oleh Django-admin menyertakan referensi ke database sqlite lokal sebagai sumber data. Ini kemungkinan akan berfungsi pada OS lokal Anda, tetapi tidak pada AWS EB, dan akan memberikanpopulate() isn't reentrant
kesalahan runtime. Untuk mengujinya, cukup beri komentarDATABASES={<...>}
pernyataan disettings.py
, terapkan, dan buka kembali aplikasi.sumber
django.core.exceptions.ImproperlyConfigured: SQLite 3.8.3 or later is required (found 3.7.17).
diikuti olehRuntimeError: populate() isn't reentrant
. Dari dokumen AWS : "Django 2.2 tidak kompatibel dengan platform Elastic Beanstalk Python 3.6." (pada saat penulisan)Saya mengalami masalah ini dan tidak dapat menemukan jawaban mengapa sampai saya mundur dari komitmen saya. Rupanya saya telah menambahkan impor yang tidak disengaja, karena pelengkapan otomatis, yang mengacaukan penyiapan.
# found in models.py from msilib.schema import SelfReg
Dalam log kesalahan apache: RuntimeError ("populate () tidak reentrant")
Ini bekerja dengan baik di lingkungan dev windows saya tetapi gagal di server ubuntu / apache.
sumber
Saya mengalami kesalahan yang sama setelah mengubah urutan pengaturan ini:
mengembalikannya ke urutan sebelumnya dan memulai ulang apache memperbaiki masalah.
sumber
Dalam kasus saya, saya memiliki
custom renderer class
untukDjango Rest Framework
, untuk beberapa tujuan saya harus mengganti metode kelas penyaji "get_context" (pengungkapan penuh: untukdjango toolbar
memberikan jumlah kueri SQL yang benar)Saya menghapus kelas itu dan menerapkan ulang. Berhasil.
sumber
Dalam kasus saya, kesalahan terjadi karena paket pip yang diperlukan tidak ada.
Jadi saya melakukan
pip install -r requirements.txt
, memulai kembali apache dan semuanya berfungsi lagi.sumber
Menghapus direktori virtualenv, membuat ulang virtualenv, lalu menginstal ulang semua persyaratan yang memperbaikinya untuk saya.
sumber
Menambahkan alasan saya ke daftar. Bagi saya itu karena saya memiliki layanan django yang diberi nama dengan direktori yang sama sebagai direktori proses. Mengganti nama proses / dir memperbaiki masalah.
sumber
Saya memiliki rekursif
django.setup()
, misalnya saya mencoba menulisdjango.setup()
di dalam sebuahapp/models.py
, di jejak tumpukan django mencoba menunjukkan ini di dekat:jadi ya, pastikan untuk tidak mencoba menyiapkan django saat django sedang disiapkan ...
sumber
Memulai ulang server Apache untuk saya memecahkan masalah. Anda dapat melakukannya dengan menggunakan perintah $ sudo service apache2 restart
sumber
Saya mengalami masalah yang sama, yang berhasil untuk saya adalah mengomentari pengaturan basis data default di / settings.py. Saya juga membaca bahwa versi django tidak kompatibel dengan ebs
sumber
Bagi saya kesalahan itu adalah
mysqlclient
paket yang hilang di file requirement.txt.Pertama saya menginstal
mysqlclient
paket dengan:lalu saya memperbarui file requirement.txt dengan:
dan ini memecahkan masalah saya.
sumber
Dalam kasus saya, saya memiliki impor melingkar, yang menyebabkan kesalahan yang merusak metode populasi.
sumber
Untuk memasukkan 2 sen Euro saya:
Saya membuat ulang pengaturan kerja di Docker. Penyiapan Docker baru gagal dengan
yang tampaknya merupakan kesalahan umum. Dalam kasus saya, saya mengabaikannya
menginstal versi terbaru (
2.0
), bukan versi yang diperlukan1.11
. Mengubah ini menjadimemperbaiki masalah saya.
sumber
Saya pikir ini adalah kesalahan umum jika ada yang salah
settings.py
. Terkadang saya dapat menemukan masalah dengan trial and error dengan menghapus aplikasi yang diinstal satu per satu. Dalam beberapa kasus, ini tidak terkait dengan aplikasi yang diinstal. Tetapi dari pengalaman saya, dalam semua kasus itu adalah masalah di dalamsettings.py
file.sumber
periksa apakah Anda telah menyebutkan nama api Anda dua kali di bagian aplikasi yang diinstal settings.py.
Definisi aplikasi
Definisi aplikasi
Menghapus entri duplikat memecahkan masalah saya
sumber