django import error - Tidak ada modul bernama core.management

187

Oke, saya melihat banyak kesalahan ini. Saya sudah mencoba semua yang saya tahu harus dilakukan dan belum memikirkannya.

Saya bekerja pada server pengembangan yang menjalankan python 2.5 dan Django 1.3. Django 1.3 diinstal menggunakan instal python setup.py setelah membongkar unduhan tar.gz.

Semua berfungsi dengan baik, saya jarang memiliki kebutuhan untuk menjalankan manage.pytetapi saya mencoba menggunakan aplikasi staticfiles baru dan saya mengalami masalah.

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 2, in <module>
    from django.core.management import execute_manager
ImportError: No module named core.management

Ok, jadi saya punya PATHmasalah.

Dari Django install, saya periksa site-packagesdirektori saya .

python -c "from distutils.sysconfig import get_python_lib; print get_python_lib()"
/usr/lib/python2.5/site-packages

Ok, mari kita periksa apa yang saya miliki, gema $ PYTHON_PATH kosong, jadi saya atur

export PYTHON_PATH=/usr/lib/python2.5/site-packages/django

Masih belum berhasil. Mari kita periksa apa yang dikatakan sys.path

>>> import sys
>>> print sys.path
['', '/usr/lib/python2.5', '/usr/lib/python2.5/plat-linux2', '/usr/lib/python2.5/lib-tk', '/usr/lib/python2.5/lib-dynload', '/usr/local/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages', '/usr/lib/python2.5/site-packages/PIL', '/usr/lib/python2.5/site-packages/django', '/var/lib/python-support/python2.5']

jalan ada di sana, saya bahkan membuat /usr/lib/python2.5/site-packages/django.pth dengan konten

cat /usr/lib/python2.5/site-packages/django.pth 
/usr/lib/python2.5/site-packages/django/

Adakah yang punya petunjuk tentang apa yang terjadi di sini?

Saya menemukan symlink lebih lanjut di jalan yang menghalangi, tetapi tidak ada kesalahan baru.

python manage.py collectstatic
Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_manager(settings)
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/usr/lib/python2.5/site-packages/django/core/management/__init__.py", line 349, in execute
    version=get_version(),
  File "/usr/lib/python2.5/site-packages/django/__init__.py", line 12, in get_version
    from django.utils.version import get_svn_revision
ImportError: No module named utils.version

Saya juga mencoba membuat proyek baru untuk melihat apakah ada masalah di sana dan mendapatkan kesalahan utils.version yang sama.

Side node: Unode from #django membantu saya sedikit, mengatur virtualenv pada mesin yang sama dan berhasil melewati kesalahan jadi masih tidak yakin apa yang terjadi dengan instalasi aktual ini di sini, tetapi tampaknya tidak berada dalam proyek Django tetapi dalam Django / python instal.

mengabulkan
sumber
1
Apa yang terjadi ketika Anda mengetikkan import djangoshell python?
silent1mezzo
@ silent1mezzo - Ahh lupa untuk melemparkan itu, tidak ada keluhan dari shell python pada impor Django
Grantk
1
Apakah kamu sudah lari python manage.py syncdb?
silent1mezzo
@ silentmezzo - Tidak pada mesin ini, melakukannya pada mesin pribadi saya sebelum memindahkan proyek.
berikan
Coba jalankan dulu. Ini terkadang dapat menyebabkan kesalahan.
silent1mezzo

Jawaban:

169

Jika, seperti saya, Anda menjalankan Django Anda di virtualenv, dan mendapatkan kesalahan ini, lihat manage.py. Baris pertama harus mendefinisikan python executable yang digunakan untuk menjalankan skrip. Ini seharusnya menjadi path ke python virtualenv Anda, tetapi ini adalah sesuatu yang salah seperti / usr / bin / python, yang bukan path yang sama dan akan menggunakan lingkungan python global (dan paket akan hilang). Cukup ubah jalur menjadi jalur ke python yang dapat dieksekusi di virtualenv Anda.

Anda juga dapat mengganti garis shebang Anda dengan #!/usr/bin/env python. Ini harus menggunakan lingkungan python yang tepat dan juru bahasa asalkan Anda mengaktifkan virtualenv Anda terlebih dahulu (saya berasumsi Anda tahu bagaimana melakukan ini).

Steve K.
sumber
27
atau jalankan seperti<path-to-my-env>/bin/python manage.py runserver
geekQ
Terlihat dengan baik! Itulah masalahnya!
kstratis
7
Juga, er ... ingat untuk mengaktifkan virtualenv. Doh!
Alex Mcp
Pokoknya Anda bisa memberikan contoh path ke python Anda yang dapat dieksekusi di virtualenv Anda. Misalnya jalur saya ke virtual env saya adalah / Users / Chris / virtualenv / my_first_venv dan saya membuat baris pertama #! / Users / Chris / virtualenv / my_first_venv /, tapi saya masih mendapatkan kesalahan yang sama. Saya pikir saya mungkin melakukan sesuatu yang salah dengan shebang ...
Chris
Anda mungkin lupa menambahkan python executable di akhir jalan: #!/Users/Chris/virtualenv/my_first_venv/bin/pythonatau sesuatu di sepanjang ini?
Steve K
40

Jika Anda berada dalam virtualenv, Anda harus mengaktifkannya sebelum Anda dapat menjalankan ./manage.py 'command'

source path/to/your/virtualenv/bin/activate

jika Anda mengkonfigurasi workon di .bash_profile atau .bashrc

workon yourvirtualenvname

* tolong jangan edit file manage.py Anda mungkin berfungsi dengan cara yang tidak benar dan bisa memberi Anda kesalahan di masa depan

selain itu
sumber
Ini juga melakukannya untuk saya setelah membakar setengah malam berjuang untuk membuatnya bekerja. Terima kasih banyak @ elin3t.
Yax
30

Saya memiliki masalah yang sama karena saya menginstal Django sebagai pengguna super, jadi tidak di virtualenv saya. Anda seharusnya tidak melakukannyasudo pip install Django

Sebaliknya, instal dengan cara ini:

$ source ./bin/activate
$ pip install Django
aviggiano
sumber
Tetapi tanpa sudo Anda mendapatkan: OSError: [Errno 13] Izin ditolak: '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django'
malhal
15

Silakan instal ulang Django dengan pip:

sudo pip install --upgrade django==1.3

(Ganti 1.3 ke versi django Anda)

satelit
sumber
25
Tidak direkomendasikan. Menggunakan sudountuk menginstal ke direktori sistem akan mengganggu paket-paket asli dan kemungkinan besar rusak setidaknya beberapa bagian dari instalasi python Anda. Saya akan merekomendasikan virtualenv.
Noufal Ibrahim
11

Sebagaimana diketahui ini adalah masalah jalur.

pangkalan paket khusus saya membagikan nama dengan direktori yang diset di / etc / profile. Paket-paket berada di lokasi yang berbeda namun untuk server web. Jadi saya menghapus entri yang menyinggung dari $ PYTHONPATH saya dan bagus untuk digunakan!

Terima kasih untuk bantuannya.

mengabulkan
sumber
10

Alasan lain yang mungkin untuk masalah ini adalah bahwa OS Anda menjalankan python3 secara default.

Anda harus melakukannya secara eksplisit: python2 manage.py

atau Anda perlu mengedit shebang manage.py, seperti:

#!/usr/bin/env python2

atau jika Anda menggunakan python3:

#!/usr/bin/env python3
gila
sumber
bagi saya, saya harus melakukan#!/usr/bin/env python2.7
Vic
8

Saya memiliki kesalahan ini ketika mencoba untuk menjalankan sistem embedded (menggunakan Django tentu saja) pada Raspberry Pi 2 (dan tidak a VM )

Menjalankan ini:

 sudo pip install Django

Membuat trik!

  • kalau-kalau ada orang yang menggunakan Raspbian / Jessie mendapatkan ini
d1jhoni1b
sumber
6

Anda mungkin menggunakan virtualenvwrapper . Jangan lupa untuk memilih lingkungan Anda dengan menjalankan:

$ workon env_name
MK
sumber
4

Bagi saya, server saya menggunakan Python 2.4. Saya hanya mencari Python 2.7, yang diinstal pada server saya, dan membuat alias.

alias python=python2.7

Jika Anda perlu tahu lebih banyak, saya menemukan solusinya di sini

el_stack
sumber
4

Saya mendapatkan masalah yang sama ketika saya mencoba membuat aplikasi baru. Jika Anda menulis python manage.py startapp myapp, maka itu akan mencari usr / bin / python. Tetapi Anda memerlukan " python " yang terletak di direktori / bin dari jalur env virtual Anda . Saya memecahkan ini dengan menyebutkan jalur python virtualenv seperti ini:

<env path>/bin/python manage.py startapp myapp
Tarique
sumber
3

Coba ubah baris pertama manage.py Anda.

Perubahan

#!/usr/bin/python

oleh

#!/usr/bin/env python
Gabriel Cavalcante
sumber
3
Kebalikannya membantu saya. Digantikan #!/usr/bin/env pythonoleh#!/usr/bin/python
curlyreggie
env adalah bin unix yang umum untuk mendapatkan tautan bin lingkungan os, tergantung pada konfigurasi OS atau instalasi python, bin dapat berada di jalur yang berbeda dari / usr / bin / dan solusi Anda tidak akan berfungsi, juga tidak akan berfungsi jika 'env' bin dipasang di lokasi yang berbeda.
Gabriel Cavalcante
3
python3 manage.py runserver

Periksa versi Python

sim
sumber
3

Selesaikan !!!

Setelah mencari lama dan mencoba semua saran lain yang tidak berhasil, saya akhirnya menemukan solusi untuk pengaturan saya.

Pengaturan / skenario saya:

  • Windows, Python27
  • Proyek Django saya diperiksa melalui svn
  • ketika menjalankan python manage.py runserver di folder baru, saya mendapat kesalahan impor
  • python manage.py runserver digunakan untuk bekerja di folder asli (tempat saya akan melakukan perubahan) sampai saya menghapusnya

Larutan

Hapus folder bernama django di direktori yang sama dengan manage.py

Itu benar ... segera setelah saya menghapus folder "Django" yang hanya berisi file __init__.py ... Saya bisa menjalankan server lagi!

Tidak tahu mengapa

Dan
sumber
Karena folder dengan file __init__.py diperlakukan sebagai modul python . Jadi Anda seharusnya tidak memberi nama direktori modul tersirat Django
kaushal agrawal
2

Bagi Anda yang menggunakan Django 1.6 atau yang lebih baru, perhatikan bahwa execute_manager telah dihapus . Ada solusi yang diposting dalam jawaban SO kedua di sini .

Owen
sumber
2

Simpan path python python dalam sebuah variabel dan jalankan. Ini akan termasuk paket-paket yang hilang.

python_path= `which python` 
$python_path manage.py runserver
Nischay Gulati
sumber
1

Saya punya masalah serupa. PyCharm tidak bisa menjalankan server tetapi saya bisa menjalankannya dari baris perintah. Saya mencoba python mana dan kemudian memastikan bahwa PyCharm adalah penerjemah yang sama dan kemudian semuanya bekerja dengan baik.

Trip Denton
sumber
1

Kesalahan ini biasanya terjadi ketika Django tidak diinstal. Jika Anda sudah menginstal Django tetapi masih mendapatkan kesalahan yang sama, maka Anda harus bekerja di lingkungan virtual yang terpisah. Anda perlu menginstal Django di lingkungan virtual Anda juga. Ketika Anda berada di shell mesin virtual cukup lakukan ini:

pip instal Django

Itu karena mesin virtual memiliki sistem file yang terpisah, itu tidak mengenali Django bahkan jika itu diinstal pada sistem Anda.

Rai Ammad Khan
sumber
1

Saya memperbaiki masalah ini dengan mengubah #PATH = "$ VIRTUAL_ENV / bin: $ PATH" ke PATH = "$ PATH: $ VIRTUAL_ENV / bin" Untuk alasan yang tidak jelas bagi saya, python yang dapat dieksekusi dalam dir virtualenv tidak melihat Django tetapi biasanya python terpasang tidak.

Lowlysquib
sumber
1

================================== SOLUSI =============== ==========================

Goto pertama: virtualenv

dengan menjalankan perintah: source bin / aktifkan

dan instal Django karena Anda mendapatkan kesalahan terkait dengan 'impor Django':

pip install django

Lalu lari:

python manage.py runserver

(Catatan: ubah 'runserver' ke nama program yang ingin Anda jalankan)

Untuk masalah yang sama, itu berhasil dalam kasus saya. ================================== Sinopsis =============== ==========================

ERROR:
(Development) Rakeshs-MacBook-Pro:src rakesh$ python manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

Selama menangani pengecualian di atas, pengecualian lain terjadi:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ 
(Development) Rakeshs-MacBook-Pro:src rakesh$ python -Wall manage.py test
Traceback (most recent call last):
  File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

Selama menangani pengecualian di atas, pengecualian lain terjadi:

Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    import django
ModuleNotFoundError: No module named 'django'

Selama menangani pengecualian di atas, pengecualian lain terjadi:

Traceback (most recent call last):
  File "manage.py", line 17, in <module>
    "Couldn't import Django. Are you sure it's installed and "
ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?

SETELAH INSTALASI Django:

(Development) MacBook-Pro:src rakesh$ pip install django
Collecting django
  Downloading https://files.pythonhosted.org/packages/51/1a/e0ac7886c7123a03814178d7517dc822af0fe51a72e1a6bff26153103322/Django-2.1-py3-none-any.whl (7.3MB)
    100% |████████████████████████████████| 7.3MB 1.1MB/s 
Collecting pytz (from django)
  Downloading https://files.pythonhosted.org/packages/30/4e/27c34b62430286c6d59177a0842ed90dc789ce5d1ed740887653b898779a/pytz-2018.5-py2.py3-none-any.whl (510kB)
    100% |████████████████████████████████| 512kB 4.7MB/s 
Installing collected packages: pytz, django

SETELAH MENYELESAIKAN:

(Development) MacBook-Pro:src rakesh$ python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.

August 05, 2018 - 04:39:02
Django version 2.1, using settings 'trydjango.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
[05/Aug/2018 04:39:15] "GET / HTTP/1.1" 200 16348
[05/Aug/2018 04:39:15] "GET /static/admin/css/fonts.css HTTP/1.1" 200 423
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
[05/Aug/2018 04:39:15] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
Not Found: /favicon.ico
[05/Aug/2018 04:39:16] "GET /favicon.ico HTTP/1.1" 404 1976

Semoga berhasil!!

Rakesh Kumar
sumber
0

proyek Anda dibuat menggunakan django-admin.py versi lama, lebih tua dari django1.3

untuk memperbaikinya, buat proyek Django lain dan salin kelola.py dan tempel di yang lama

MBarsi
sumber
@dontario. Bukan yang ini, saya membuat proyek ini menggunakan komputer pribadi saya yang menjalankan final 1.3.0. Ada beberapa proyek impor yang dibuat dengan versi yang lebih lama, bukan?
terima kasih
Saya mencoba menyalin mange.py baru saya dari aplikasi baru ke aplikasi lama yang digunakan juga dan masih mendapatkan kesalahan yang sama.
terima kasih
0

Sepenuhnya setuju bahwa ini adalah masalah jalur tapi fwiw, saya punya kesalahan yang sama. Itu karena kesalahan menggunakan jalur relatif untuk dieksekusi Python saya ketika mengatur lingkungan virtual saya. Saya telah melakukan ini:

virtualenv -p ~/python_runtimes/2.7.3/bin/python venv2.7.3 --distribute

Sebaliknya saya harus memberikan path lengkap ke executable Python.

HTH, Harlin

Harlin
sumber
0

sumber ~ / blog-venv / bin / aktifkan

pilih virtualenv Anda untuk mengganti "blog-venv" di sini.

windmaomao
sumber
Terima kasih, itu memecahkan masalah saya sehubungan dengan ini:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Shailen
0

Pastikan Anda menjalankan instance Python yang benar dengan direktori yang tepat di jalurnya. Dalam kasus saya, kesalahan ini dihasilkan dari menjalankan pythonexecutable secara tidak sengaja - Saya telah menginstal Django di bawah python2.7framework & libraries. Hal yang sama dapat terjadi sebagai hasil dari virtualenv juga.

Chris Johnson
sumber
0

Oke jadi begini:

Anda telah menciptakan lingkungan virtual dan modul Django hanya milik lingkungan itu saja. Karena virtualenv mengisolasi dirinya dari yang lain, maka Anda melihat ini.

lihat 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 beralih ke direktori tempat lingkungan virtual Anda disimpan dan kemudian jalankan modul django.

2. Secara alternatif Anda dapat menginstal Django secara global ke paket python-> situs Anda dengan menjalankan pip atau easy_install

Perintah menggunakan pip: pip install django

lalu lakukan ini:

import django print (django.get_version ()) (tergantung pada versi python yang Anda gunakan. Ini untuk python 3+ series)

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

Semoga ini membantu.

Ashish
sumber
0

Saya memasukkan nama Aplikasi baru ke daftar INSTALLED_APPS di settings.py "before" Saya mengeluarkan perintah startapp. Setelah saya menghapus entri daftar, saya bisa membuat aplikasi.

Milad M
sumber
0

Saya memecahkan masalah ini dengan menggunakan perintah 'django-admin' sebagai berikut:

django-admin startproject _project_name

hapus saja ".py" yang terlampir pada "django-admin"

M Haziq
sumber
0

Memiliki aplikasi yang dipanggil sitedapat mereproduksi masalah ini juga.

Christian Gutierrez Sierra
sumber
0

Saya mendapatkan ini karena lupa bahwa saya menginstal Django menggunakan pip -U, jadi itu hanya tersedia untuk pengguna yang menjalankan aplikasi Django saya. Untuk menjalankan manage.py harus saya lakukan

sudo su -s /bin/bash MY_DJANGO_USER
/PATH/TO/MY/APP/manage.py
EM0
sumber
-2

kalian semua tidak menyebutkan kasus di mana seseorang "seperti saya" akan menginstal Django sebelum menginstal virtualenv ... jadi untuk semua orang seperti saya jika Anda melakukan itu ... instal ulang Django setelah mengaktifkan virtualenv..i semoga ini membantu

Dever
sumber
Ini bukan solusi. Ini komentar tentang solusi lain oleh Steve k.
shanemgrey
itulah yang terjadi pada saya dan itulah bagaimana saya memperbaikinya ... itu adalah kesalahan yang bisa dilakukan oleh setiap pemula
Dever