Django - "django.core.management adında modül yok"


104

Django'yu komut satırından çalıştırmaya çalışırken aşağıdaki hatayı alıyorum.

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

Bunu çözmek için herhangi bir fikir var mı?


Tam olarak ne çalıştırmaya çalışıyorsunuz, Python'un hangi sürümünü, Django'nun sürümünü vb ...?
Jon Clements

Yerel sunucumun sürümü Python 2.6.6 ve 1.4.3 Dyango'dur. Python sunucusu 2.6.6 ve Dyango için nasıl kontrol edileceğini kontrol edemiyor musunuz?
Krasimir

Bu hatayı geçiş yapmaya çalışırken rastgele aldım ve Django yüklü sanal ortamımdaydım. Sadece komutu tekrar çalıştırdım ve işe yaradı.
aalaap

Ben de aynı hatayı alıyorum. Django'yu kurdum ama dağıtım paketleri dizinine yükledim. Dockerfile, ubuntu temel görüntüsünü kullanır. Bu yüzden Dockerfile'ı bunu eklemek için güncelledim ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"ancak hala django uygulamasını yüklemiyor .
alltej

Yanıtlar:


55

Django'nun kurulu olmadığı anlaşılıyor. Bu komutla üretilen dizini kontrol etmelisiniz:

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

Orada django paketlerinin olup olmadığını görmek için.

Site paketlerinin içinde django klasörü yoksa, django'nun kurulu olmadığı (en azından o python sürümü için) yoktur.

Birden fazla python sürümünüz kurulu olabilir ve django başka bir sürümün içinde olabilir. Python'un tüm sürümlerini yazıp pythonardından SEKME tuşuna basarsanız öğrenebilirsiniz . İşte sahip olduğum tüm farklı pitonlar.

$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

Her python sürümü için yukarıdaki komutu uygulayabilir ve herhangi birinde django'nun kurulu olup olmadığını görmek için her birinin site paketleri dizinine bakabilirsiniz. Örneğin:

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()"

Örneğin python2.6'nın içinde django bulursanız, orijinal komutunuzu şunu deneyin:

python2.6 manage.py ...

"/Usr/lib/python2.6/site-packages" komutundan hemen sonra gelen şey budur
Krasimir

"/Usr/lib/python2.6/site-packages" klasörüne gidin ve içinde django adlı bir klasör olup olmadığına bakın.
RaviU

Evrything else not Django: D
Krasimir

Merhaba, lütfen düzenlenmiş cevabımı kontrol edin. Belki de django'nuz python'un başka bir versiyonundadır.
RaviU

1
Django'yu virtualenv kullanarak veya sanal bir ortamdayken kurduysanız, sisteme global olarak kurmadıysanız, çalışması için sanal ortamda olmanız gerekir.
Ramon Suarez

41
sudo pip install django --upgrade 

benim için hile yaptı.


4
Cevabınız benim için çalıştı, ben de ona olumlu oy verdim. Ben çalıştırdığınızda Ancak, tek başına sadece cevap, yeterli değildi sudo pip install django --upgradebana yeni hata verdi: No module named psycopg2. Ben de koştum sudo pip install psycopg2 --upgradeve hile yaptı.
Dorian Dore

2
Django'nun yüklü olmadığı ortaya çıktı ... Daha önce makinede kullanmış olmama rağmen. Tuhaf.
James111

Bir zaman aşımı sorunum vardı, bu yüzden yaptım sudo pip install --default-timeout=100 django --upgradeve her şey yolunda gitti.
Zap

"Pyenv" kullanıyorsanız aşağıdakilere ihtiyacınız olacaktır:pip install django --upgrade --user
Inyoka

30

Aynı hatayı aldım ve şu şekilde düzelttim:

Aşağıdaki komutu kullanarak sanal ortamımı etkinleştirmem gerekiyordu

source python2.7/bin/activate

22

Büyük olasılıkla manage.pyilk satırınız ile başlar, !/usr/bin/pythonbu da sanal ortamınızdaki yerine sistem global python'u kullandığınız anlamına gelir.

öyleyse değiştir

/usr/bin/python

ile

~/projectpath/venv/bin/python

ve iyi olmalısın.


Teşekkürler. Yardımcı oldu.
Serg Smyk

Projemde uygulamanın bir bölümünü çağıran bir bash betiği vardı ve bu bash betiğinde, python startapponu olarak değiştirmem gerekti /path/to/venv/bin/python startappve işe yaradı. Bunu işaret ettiğiniz için teşekkür ederiz !!
Gordster

13

Peki, bugün virtualenv ve django'yu kurduktan sonra aynı hatayla karşılaştım. Benim için django'yu kurmak için sudo ( sudo pip install django ) kullanmıştım ve manage.py run sunucusunu sudo olmadan çalıştırmaya çalışıyordum . Az önce sudo ekledim ve işe yaradı. :)


10

Sanal Sarmalayıcı ile Sanal Ortam mı kullanıyorsunuz? Mac'te misin?

Öyleyse şunu deneyin:

Sanal ortamı başlatmak için komut satırınıza aşağıdakileri girin ve ardından üzerinde çalışın

1.)

source virtualenvwrapper.sh

veya

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Not (yeni başlayanlardan) - ortam adınızın etrafına parantez koymayın


Virtualenv'in etkinleştirilmediğini anlamam iki saniye kadar sürdü, ama bu benim sorunumdu ... bu yüzden google düğmesine bir kez bastığımdan ve çıkan hiçbir şeyi okumadığımdan beri oy verin.
RobotHumans

7

Komutu çalıştırırken de aynı sorunu yaşıyorum.

python manage.py startapp <uygulama_adı>

ama benim sorunum şu ki, bu komutu sanal ortamdan çalıştırıyordum, bu yüzden önce sanal ortamınızı etkinleştirin ve komutu tekrar çalıştırın -


1
Projemde uygulamanın bir bölümünü çağıran bir bash betiği vardı ve bu bash betiğinde, python startapponu olarak değiştirmem gerekti /path/to/venv/bin/python startappve işe yaradı.
Gordster

5

Bu sorun, bilgisayarınızda django yüklü olmadığında ortaya çıkar. Django kurulu olmadığında bu django.core.management modülünün de kurulu olmadığı anlamına gelir. Yani bu modülü bulamadı ve hata veriyor.
Bu sorunu çözmek için django'yu pip kullanarak kurmalıyız. Komut satırı cmd'yi açın (Windows'ta) ve şu şekilde yazın:

pip install django

Bu komut django'yu bilgisayarınıza kuracaktır. Pip yüklemeniz yoksa. pip yüklemelisiniz. Pencerelere pip nasıl kurulur


5

Ben de aynı şeyi yaşıyorum ve yaptığım şey bu.

İlk kurulumum

pip kurulum -r gereksinimleri.txt

aktif ortamımda değil. Ben de ortamımı etkinleştirip sonra tekrar çalıştırdım.

pip kurulum -r gereksinimleri.txt


4

Tamam öyleyse şöyle devam ediyor:

Bir sanal ortam oluşturdunuz ve django modülü yalnızca o ortama aittir. Virtualenv kendisini diğer her şeyden izole ettiğinden, bunu görüyorsunuz.

daha fazla yardım için bunu gözden geçirin:

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

1. Sanal ortamınızın depolandığı dizine geçebilir ve ardından django modülünü çalıştırabilirsiniz.

2. Alternatif olarak, django'yu python-> site paketlerinize pip veya easy_install çalıştırarak kurabilirsiniz.

Pip kullanarak komut: pip install django

o zaman şunu yap:

django print'i içe aktar (django.get_version ()) (kullandığınız python sürümüne bağlı olarak. python 3+ serisi için)

ve sonra şunu çalıştırabilirsiniz: python manage.py runserver ve web tarayıcınızda şunu yazarak kontrol edin: localhost: 8000 ve django destekli sayfayı görmelisiniz.

Bu yardımcı olur umarım.


3

Bunun başkalarına yardımcı olması durumunda ... Bu sorunu yaşadım çünkü virtualenv varsayılan değerim python2.7 idi ve Ubuntu kullanırken Python3 kullanarak Django'yu çağırıyordum.

Virtualenv'imin hangi python'u kullandığını kontrol etmek için:

$ which python3
>> /usr/bin/python3

belirtilen python3 ile yeni virtualenv oluşturuldu (virtualenv sarmalayıcı kullanılarak https://virtualenvwrapper.readthedocs.org/en/latest/ ):

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

python yolu şimdi virtualenv python'u göstermelidir:

$ which python3
>> /home/user/.virtualenvs/ENV_NAME/bin/python3

2

Bu, python projenizin dizin yapısını değiştirirseniz de olur (bunu yaptım ve ardından davranıştaki değişikliğe şaşırdım). Bunu yaparsanız, / bin / activ dosyanızdaki bir satırı değiştirmeniz gerekecektir. Diyelim ki projeniz

/User/me/CodeProjects/coolApp/

ve etkinleştirme dosyanız şu adreste

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

projenizi kurduğunuzda, projenizi şu şekilde değiştirdiniz:

/User/me/CodeProjects/v1-coolApp/

ya da başka birşey. Daha sonra açmanız gerekecek

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

söylediği satırı bul

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

ve değiştir

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

yeniden etkinleştirmeden önce


2

Benim durumumda Ubuntu kullanıyorum. Sorun, o klasöre normal bir kullanıcı olarak yazma iznim olmaması olabilir. sudoKomutunuzun önüne basitçe ekleyebilirsiniz ve mükemmel çalışmalıdır. Benim durumumda sudo python manage.py syncdb.


2

Aynı sorunu yaşadım ve bu mesajı almamın nedeni, "manage.py runserver" yaparken "python manage.py runserver" yaptığım için bunu düzeltti.


2
Python 3 kullanılıyorsa, olması gerektiğini unutmayın python3 manage.py runserver. Aksi takdirde içe aktarma hatası hala orada olacaktır.
rbaleksandar

2

Ben de aynı sorunu yaşadım ve aşağıdakiler iyi çalıştı, projenizdeki ana klasöre gitmek yerine yazmalısınız:

source bin/activate 

1

root olarak aynı problem.run komutu olan 'python manage.py migrate' komutuna sahipti. kök erişimiyle iyi çalışır (sudo python manage.py migrate)


1
Bu, sebebi değil semptomu tedavi etmek gibi. Sudo çalışıyorsa, muhtemelen bir izin sorunudur.
evandentremont

Elbette, sorunu teşhis etmenin bir yolu.
Hemanth Gowda

1

Benim durumum Mac'te pyCharm 5 kullandım. Ben de bu sorunu yaşadım ve bu komutu çalıştırdıktan sonra sorunum çözüldü

sudo pip install django --upgrade 

1

Bunu şu şekilde deneyebilirsiniz: python3 manage.py migrate( src/dizinde olmasını sağlayın )

Ayrıca deneyebilirsiniz pip install -r requirements.txt( geçişten sonra requirements.txtyazarken dosyayı gördüğünüzden emin olun)ls

Sonuçta hala işe yaramazsa, deneyin pip install django

Umarım yardımcı olur


0

Eğer Proje ilk sunucuyu çalıştırmadan önce, bu tip seçmelisiniz workon your_project_name ardından python manage.py runserver


-1

Dosya ve Dizin sahipliği çakışması burada sorunlara neden olur. Proje altındaki dizinlerin ve dosyaların sahipliğinin mevcut kullanıcıya ait olduğundan emin olun. (Bunları -R seçeneğiyle chown komutunu kullanarak değiştirebilirsiniz.) Komutu yeniden çalıştırmayı deneyin: Bu, "İlk Django Uygulaması" örneğini çalıştırırken benim için sorunu çözdü:

python manage.py startapp polls

-1

Python manage.py çalıştırma sunucusunu kullanmaya çalışırken aynı sorunu yaşadım . Benim durumumda sadece sudo su kullanıyorum . Terminali bir kök olarak kullanın ve tekrar deneyin ve kısmen çalışıyor. Bu yüzden python manage.py migrate comand kullanıyorum ve düzeltiyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.