Django - “tidak ada modul bernama django.core.management”

104

Saya mendapatkan kesalahan berikut ketika mencoba menjalankan Django dari baris perintah.

File manage.py, line 8, in <module>
     from django.core.management import execute_from_command_line
ImportError: No module named django.core.management

Ada ide tentang cara mengatasi ini?

Krasimir
sumber
Apa sebenarnya yang Anda coba jalankan, versi Python apa, versi Django dll ...?
Jon Clements
Versi host lokal saya adalah Python 2.6.6, dan 1.4.3 Dyango. Server Python 2.6.6 dan untuk Dyango tidak dapat memeriksa apakah tahu cara memeriksa?
Krasimir
Saya mendapatkan kesalahan ini secara acak ketika mencoba melakukan migrasi dan saya berada di lingkungan virtual saya dengan Django terpasang. Saya hanya menjalankan perintah lagi dan berhasil.
aalaap
Saya memiliki kesalahan yang sama. Saya telah menginstal django tetapi saya menginstalnya di direktori dist-packages. Dockerfile menggunakan image dasar ubuntu. Jadi saya memperbarui Dockerfile untuk menambahkan ini ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"tetapi masih tidak memuat aplikasi django.
alltej

Jawaban:

55

Kedengarannya Anda belum memasang django. Anda harus memeriksa direktori yang dihasilkan oleh perintah ini:

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Untuk melihat apakah Anda memiliki paket django di sana.

Jika tidak ada folder django di dalam paket-situs, maka Anda belum menginstal django (setidaknya untuk versi python itu).

Ada kemungkinan Anda memiliki lebih dari satu versi python terinstal dan django ada di dalam versi lain. Anda dapat mengetahui semua versi python jika Anda mengetik pythondan kemudian menekan TAB. Ini semua python berbeda yang saya miliki.

$python
python            python2-config    python2.6         python2.7-config  pythonw2.5
python-config     python2.5         python2.6-config  pythonw           pythonw2.6
python2           python2.5-config  python2.7         pythonw2          pythonw2.7

Anda dapat melakukan perintah di atas untuk setiap versi python dan melihat ke dalam direktori paket situs masing-masing untuk melihat apakah ada di antara mereka yang telah menginstal django. Sebagai contoh:

python2.5 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
python2.6 -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"

Jika Anda kebetulan menemukan django di dalam say python2.6, coba perintah asli Anda dengan

python2.6 manage.py ...
RaviU
sumber
Inilah yang muncul tepat setelah perintah "/usr/lib/python2.6/site-packages"
Krasimir
Pergilah ke folder "/usr/lib/python2.6/site-packages" dan lihat apakah ada folder bernama django di dalamnya.
RaviU
Evrything lain bukan Django: D
Krasimir
Hai, silakan periksa jawaban saya yang telah diedit. Mungkin django Anda ada dalam versi lain dari python.
RaviU
1
Jika Anda menginstal django menggunakan virtualenv atau saat berada di lingkungan virtual, Anda harus berada di lingkungan virtual untuk menjalankannya, kecuali Anda telah menginstalnya di sistem secara global.
Ramon Suarez
41
sudo pip install django --upgrade 

melakukan trik untuk saya.

Pohon Kode
sumber
4
Jawaban Anda berhasil untuk saya, jadi saya memberikannya suara positif. Namun, hanya jawaban Anda saja tidak cukup, karena ketika aku berlari sudo pip install django --upgradeitu memberi saya error baru: No module named psycopg2. Jadi, saya lari sudo pip install psycopg2 --upgrade, dan berhasil.
Dorian Dore
2
Ternyata saya tidak memasang Django ... Meskipun saya telah menggunakannya sebelumnya di mesin. Aneh.
Yakobus111
Saya memiliki masalah waktu tunggu, jadi saya melakukannya sudo pip install --default-timeout=100 django --upgradedan semuanya berjalan lancar.
Zap
Jika Anda menggunakan "pyenv", Anda memerlukan yang berikut ini:pip install django --upgrade --user
Inyoka
30

Saya mendapat kesalahan yang sama dan saya memperbaikinya dengan cara ini:

Saya harus mengaktifkan lingkungan virtual saya menggunakan perintah berikut

source python2.7/bin/activate
Anagha
sumber
22

Kemungkinan besar di manage.pybaris pertama Anda dimulai dengan!/usr/bin/python yang berarti Anda menggunakan python global sistem daripada yang ada di lingkungan virtual Anda.

jadi ganti

/usr/bin/python

dengan

~/projectpath/venv/bin/python

dan kamu harus menjadi baik.

mgPePe
sumber
Terima kasih. Itu membantu.
Serg Smyk
Proyek saya memiliki skrip bash yang memanggil satu bagian dari aplikasi, dan dalam skrip bash itu python startappsaya harus mengubahnya /path/to/venv/bin/python startappdan berhasil. Terima kasih telah menunjukkan hal ini !!
Gordster
13

yah, saya menghadapi kesalahan yang sama hari ini setelah menginstal virtualenv dan django. Bagi saya, saya telah menggunakan sudo ( sudo pip install django ) untuk menginstal django, dan saya mencoba menjalankan runserver manage.py tanpa sudo . Saya baru saja menambahkan sudo dan berhasil. :)

pengguna1578297
sumber
10

Apakah Anda menggunakan Lingkungan Virtual dengan Virtual Wrapper? Apakah Anda menggunakan Mac?

Jika demikian coba ini:

Masukkan perintah berikut ke dalam baris perintah Anda untuk memulai lingkungan virtual dan kemudian mengerjakannya

1.)

source virtualenvwrapper.sh

atau

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Catatan (dari pemula) - jangan beri tanda kurung di sekitar nama lingkungan Anda

Pete Varley
sumber
Butuh waktu dua detik untuk mengetahui bahwa virtualenv tidak diaktifkan, tetapi ini adalah masalah saya ... jadi upvote karena saya menekan tombol google sekali dan tidak membaca apa pun yang muncul.
RobotHumans
7

Saya mengalami masalah yang sama saat menjalankan perintah-

python manage.py startapp <app_name>

tetapi masalah bagi saya adalah saya menjalankan perintah itu dari lingkungan virtual. Jadi aktifkan lingkungan virtual Anda terlebih dahulu dan jalankan perintah lagi -

Rahul Satal
sumber
1
Proyek saya memiliki skrip bash yang memanggil satu bagian dari aplikasi, dan dalam skrip bash itu python startappsaya harus mengubahnya /path/to/venv/bin/python startappdan berhasil.
Gordster
5

Masalah ini terjadi ketika django tidak diinstal pada komputer Anda. Ketika django tidak terpasang yang berarti modul django.core.management juga tidak terpasang. Jadi tidak menemukan modul ini dan memberikan error.
Untuk mengatasi masalah ini kita harus menginstal django menggunakan pip. Buka baris perintah cmd (di windows) dan ketik sebagai

pip install django

Perintah ini akan menginstal django di komputer Anda. Jika Anda tidak memiliki pip install. Anda harus menginstal pip. Berikut cara menginstal pip di windows

Harun ERGUL
sumber
5

Saya mengalami hal yang sama dan inilah yang saya lakukan.

Pertama instalasi saya

pip install -r requirement.txt

tidak ada di lingkungan aktif saya. Jadi yang saya lakukan adalah mengaktifkan lingkungan saya lalu menjalankan lagi

pip install -r requirement.txt

Jek Hatulan
sumber
4

Oke jadi seperti ini:

Anda telah membuat lingkungan virtual dan modul django hanya dimiliki oleh lingkungan itu. Karena virtualenv mengisolasi dirinya dari yang lain, maka Anda melihat ini.

melalui ini untuk bantuan lebih lanjut:

http://www.swegler.com/becky/blog/2011/08/27/python-django-mysql-on-windows-7-part-i-getting-started/

1.Anda dapat berpindah ke direktori dimana lingkungan virtual anda disimpan dan kemudian menjalankan modul django.

2. Alternatifnya Anda dapat menginstal django secara global ke python-> site-packages Anda dengan menjalankan pip atau easy_install

Perintah menggunakan pip: pip install django

lalu lakukan ini:

impor django print (django.get_version ()) (tergantung versi python yang Anda gunakan Ini untuk seri python 3+)

dan kemudian Anda dapat menjalankan ini: python manage.py runserver dan memeriksa browser web Anda dengan mengetik: localhost: 8000 dan Anda akan melihat halaman yang didukung django.

Semoga ini membantu.

Ashish
sumber
3

Dalam hal ini membantu orang lain ... Saya mengalami masalah ini karena virtualenv saya default ke python2.7 dan saya memanggil Django menggunakan Python3 saat menggunakan Ubuntu.

untuk memeriksa python mana yang digunakan virtualenv saya:

$ which python3
>> /usr/bin/python3

membuat virtualenv baru dengan python3 yang ditentukan (menggunakan pembungkus virtualenv https://virtualenvwrapper.readthedocs.org/en/latest/ ):

$ mkvirtualenv --python=/usr/bin/python3 ENV_NAME

jalur python sekarang harus mengarah ke virtualenv python:

$ which python3
>> /home/user/.virtualenvs/ENV_NAME/bin/python3
sk8asd123
sumber
2

Ini juga terjadi jika Anda mengubah struktur direktori proyek python Anda (saya melakukan ini, dan kemudian bingung dengan perubahan perilaku). Jika Anda melakukannya, Anda harus mengubah baris di / bin / mengaktifkan file Anda. Jadi, katakanlah proyek Anda di

/User/me/CodeProjects/coolApp/

dan file aktif Anda ada di

/User/me/CodeProjects/coolApp/venv/bin/activate

ketika Anda menyiapkan proyek Anda, maka Anda mengubah proyek Anda menjadi

/User/me/CodeProjects/v1-coolApp/

atau sesuatu. Anda kemudian harus membukanya

/User/me/CodeProjects/v1-coolApp/venv/bin/activate

temukan baris yang tertulis

VIRTUAL_ENV="/User/me/CodeProjects/coolApp"
export VIRTUAL_ENV

dan mengubahnya menjadi

VIRTUAL_ENV="/User/me/CodeProjects/v1-coolApp"

sebelum mengaktifkan kembali

adamadam
sumber
2

Dalam kasus saya, saya menggunakan Ubuntu. Masalahnya mungkin saya tidak memiliki izin untuk menulis ke folder itu sebagai pengguna biasa. Anda cukup menambahkan sudosebelum perintah Anda dan itu akan bekerja dengan sempurna. Dalam kasus saya sudo python manage.py syncdb.

Habis
sumber
2

Saya mengalami masalah yang sama dan alasan saya mendapatkan pesan ini adalah karena saya melakukan "manage.py runserver" sementara "python manage.py runserver" memperbaikinya.

MAhsan
sumber
2
Perhatikan bahwa jika Python 3 digunakan, itu perlu python3 manage.py runserver. Jika tidak, kesalahan impor akan tetap ada.
rbaleksandar
2

Saya memiliki masalah yang sama dan mengikuti berfungsi dengan baik, Anda harus menavigasi folder utama dalam proyek Anda daripada mengetik:

source bin/activate 
Ikan mas
sumber
1

memiliki masalah yang sama. jalankan perintah 'python manage.py migrate' sebagai root. berfungsi dengan baik dengan akses root (sudo python manage.py migrate)

Hemanth Gowda
sumber
1
Itu semacam mengobati gejala bukan penyebabnya. Jika sudo berfungsi, itu mungkin masalah izin.
evandentremont
Tentunya, hanya cara untuk mendiagnosis masalahnya.
Hemanth Gowda
1

Kasus saya, saya menggunakan pyCharm 5 di mac. Saya juga mengalami masalah ini dan setelah menjalankan perintah ini masalah saya terpecahkan

sudo pip install django --upgrade 
Amir
sumber
1

Anda dapat mencobanya seperti ini: python3 manage.py migrate(pastikan untuk berada disrc/ direktori)

Anda juga dapat mencoba dengan pip install -r requirements.txt(pastikan Anda melihat requirements.txtfile tersebut saat mengetikls setelah migrasi

Jika setelah semua itu masih tidak berhasil coba pip install django

Semoga membantu

7 kepercayaan
sumber
0

Anda harus memilih Proyek Anda terlebih dahulu sebelum menjalankan server, ketik ini workon your_project_name kemudian python manage.py runserver

Syiwa Wahyu Saputra
sumber
-1

Konflik kepemilikan File dan Direktori akan menyebabkan masalah di sini. Pastikan kepemilikan direktori dan file di bawah proyek adalah untuk pengguna saat ini. (Anda dapat mengubahnya menggunakan perintah chown dengan opsi -R.) Coba jalankan kembali perintah: ini memecahkan masalah untuk saya ketika menjalankan melalui contoh "Aplikasi Django Pertama":

python manage.py startapp polls
keesar
sumber
-1

Saya mendapat masalah yang sama saat mencoba menggunakan python manage.py runserver . Dalam kasus saya, saya hanya menggunakan sudo su . Gunakan terminal sebagai root dan coba lagi dan ini berfungsi sebagian. Jadi saya menggunakan python manage.py migrate comand dan itu memperbaikinya.

pengguna314165
sumber