django içe aktarma hatası - core.management adlı modül yok


187

Tamam, bu hataların çoğunu görüyorum. Yapmayı bildiğim ve denemediğim her şeyi denedim.

Python 2.5 ve Django 1.3 çalıştıran bir geliştirme sunucusu üzerinde çalışıyorum. Django 1.3, tar.gz indirmesinin paketini açtıktan sonra python setup.py install kullanılarak kuruldu.

Tüm iyi çalışıyor, nadiren çalıştırma ihtiyacım var manage.pyama yeni staticfiles uygulamasını kullanmaya çalışıyorum ve sorunlarla karşılaşıyorum.

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

Tamam, sorunum var PATH.

Gönderen Django yüklemek Çift benim kontrol site-packagesdizin.

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

Tamam, neye sahip olduğumu kontrol edelim, echo $ PYTHON_PATH boştu, bu yüzden ayarladım

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

Hala şans yok. Sys.path'in ne söyleyeceğini kontrol edelim

>>> 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']

yolu var, ben bile /usr/lib/python2.5/site-packages/django.pth içeriklerle

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

Burada neler olduğuna dair bir ipucu var mı?

Bir symlink daha yolunda alıyordu yolunu buldum, ama yeni bir hataya hayır.

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

Ayrıca herhangi bir sorun olup olmadığını görmek ve aynı utils.version hatasını almak için yeni bir proje oluşturmayı denedim.

Yan düğüm: #django'dan Unode bana biraz yardımcı oldu, aynı makinede virtualenv kurdu ve hataları aştı, buradaki bu kurulumla neyin olduğundan emin değilim, ama django projelerinde değil, django'da görünüyor / python yükleyin.


1
import djangoPython kabuğuna yazdığınızda ne olur ?
silent1mezzo

@ silent1mezzo - Ahh bunu atmayı unuttu, ithalat
django'daki

1
Kaçtın mı python manage.py syncdb?
silent1mezzo

@silentmezzo - Bu makinede değil, projeyi taşımadan önce kişisel makinemde yaptım.
grantk

Önce çalıştırmayı deneyin. Bu bazen hataya neden olabilir.
silent1mezzo

Yanıtlar:


169

Benim gibi bir virtualenv sizin Django çalıştırıyorsanız ve AT, göz bu hatayı almaya olursa manage.py. İlk satır, komut dosyasını çalıştırmak için kullanılan python yürütülebilir dosyasını tanımlamalıdır. Bu, sanalenvinizin pythonunun yolu olmalı, ancak aynı yol olmayan ve genel python ortamını kullanacak (ve paketler eksik olacak) / usr / bin / python gibi yanlış bir şey. Virtualenv'inizde çalıştırılabilir python yolunu değiştirmeniz yeterlidir.

Ayrıca shebang hattınızı değiştirebilirsiniz #!/usr/bin/env python. Bu, önce virtualenv'inizi etkinleştirmeniz koşuluyla uygun python ortamını ve yorumlayıcıyı kullanmalıdır (bunu nasıl yapacağınızı bildiğinizi varsayıyorum).


27
veya gibi çalıştırın<path-to-my-env>/bin/python manage.py runserver
geekQ

İyi tespit! Sorun tam olarak buydu!
kstratis

7
Ayrıca, er ... virtualenv'i etkinleştirmeyi unutmayın. D'oh!
Alex Mcp

Her neyse, sanal ağınızdaki çalıştırılabilir python'unuzun yoluna bir örnek verebilirsiniz. Örneğin sanal env'ime giden yolum / Users / Chris / virtualenv / my_first_venv ve ilk satırı #! / Users / Chris / virtualenv / my_first_venv / yaptım, ancak yine de aynı hatayı alıyorum. Sanırım bu şey ile yanlış bir şeyler yapıyor olabilir ...
Chris

Python yürütülebilir dosyasını yolun sonuna eklemeyi unutmuş olabilirsiniz: #!/Users/Chris/virtualenv/my_first_venv/bin/pythonya da bununla ilgili bir şey?
Steve K

40

Bir sanal ağdaysanız ./manage.py 'command' komutunu çalıştırmadan önce etkinleştirmeniz gerekir.

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

.bash_profile veya .bashrc içinde workon yapılandırırsanız

workon yourvirtualenvname

* lütfen manage.py dosyanızı düzenlemeyin lütfen belki doğru şekilde çalışmaz ve size gelecekteki hataları verebilir


Bu, gecenin yarısını yakmak için mücadele ettikten sonra benim için de yaptı. Çok teşekkür ederim @ elin3t.
Yax

30

Aynı problemi yaşadım çünkü Django'yu süper bir kullanıcı olarak kuruyordum, bu yüzden sanal arayüzümde değil. Yapmamalısınsudo pip install Django

Bunun yerine, şu şekilde yükleyin:

$ source ./bin/activate
$ pip install Django

Ama sudo alırsanız: OSError: [Errno 13] İzin reddedildi: '/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django'
malhal

15

Lütfen django'yu pip ile tekrar kurun:

sudo pip install --upgrade django==1.3

(1.3'ü django sürümünüzle değiştirin)


25
Tavsiye edilmez. sudoSistem dizinlerine yüklemek için kullanmanız yerel paketlere müdahale eder ve büyük olasılıkla python kurulumunuzun en azından bazı kısımlarını bozar. Virtualenv'i tavsiye ederim.
Noufal İbrahim

11

Bilindiği gibi bu bir yol sorunuydu.

özel paketlerimin tabanı, / etc / profile dizininde ayarlanan bir diziyle bir ad paylaştı. Paketler web sunucusu için farklı bir yerdeydi. Bu yüzden rahatsız edici girdileri $ PYTHONPATH'ımdan kaldırdım ve gitmek güzeldi!

Yardım için teşekkürler.


10

Bu sorunun başka bir olası nedeni, işletim sisteminizin varsayılan olarak python3 çalıştırmasıdır.

Ya açıkça yapmanız gerekenler: python2 manage.py

ya da şu şekilde düzenlemeyi yapmanız gerekir manage.py:

#!/usr/bin/env python2

veya python3 kullanıyorsanız:

#!/usr/bin/env python3

benim için yapmak zorunda kaldım#!/usr/bin/env python2.7
Vic

8

Bir Ahududu Pi 2 (ve bir VM değil ) gömülü bir sistem (tabii ki django kullanarak) çalıştırmaya çalışırken bu hatayı vardı )

Bunu çalıştırıyorum:

 sudo pip install Django

Hile yaptı!

  • sadece içinde case bir adam kullanma Raspbian / Jessie bunu alır

6

Muhtemelen virtualenvwrapper kullanıyorsunuz . Çevrenizi koşarak seçmeyi unutmayın:

$ workon env_name

4

Benim için sunucum Python 2.4 kullanıyordu. Sunucuma yüklenmiş olan Python 2.7'yi aradım ve bir takma ad oluşturdum.

alias python=python2.7

Daha fazla bilgiye ihtiyacınız varsa, çözümü burada buldum


4

Yeni bir uygulama oluşturmaya çalışırken aynı sorunu yaşıyordum. Eğer yazarsanız python manage.py startapp myapp, usr / bin / python arar. Ama sanal env yolunuzun / bin dizininde bulunan bu " python " a ihtiyacınız var . Bunu, sanalenv'in python yolundan bahsederek çözdüm:

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

3

İlk manage.py satırınızı değiştirmeyi deneyin.

Değişiklik

#!/usr/bin/python

tarafından

#!/usr/bin/env python

3
Tersi bana yardımcı oldu. Değiştirilen #!/usr/bin/env pythontarafından#!/usr/bin/python
curlyreggie

env, işletim sistemi yapılandırmasına veya python kurulumuna bağlı olarak işletim sistemi / usr / bin / 'den farklı bir yolda bulunabilecek ve çözümünüz işe yaramayacak, ayrıca' env 'bin ise de çalışmaz farklı bir konuma kuruluyor.
Gabriel Cavalcante

3
python3 manage.py runserver

Python sürümünü kontrol edin


3

Çözüldü!!!

Yaşları aradıktan sonra ve çalışmayan tüm diğer önerileri denedikten , sonunda kurulumum için bir çözüm buldum.

Kurulum / senaryom:

  • Pencereler, Python27
  • Django projem svn aracılığıyla kontrol edildi
  • yeni klasörde python manage.py runserver çalıştırırken , alma hatası aldım
  • python manage.py runserver, silmeden önce orijinal klasörde (değişiklik yapacağım) çalışıyordu.

Çözüm

Django adlı klasörü aynı manage.py dizinindeki tüm klasörleri kaldırın

Bu doğru ... Ben sadece bir __init__.py dosyası içeren "django" klasörünü kaldırır kaldırmaz ... Sunucuyu tekrar çalıştırabilir!

Neden olsa hiçbir fikrim yok


Çünkü __init__.py dosyasına sahip bir klasör python modülü olarak değerlendirilir. Bu nedenle, zımni modül dizini django
kaushal agrawal


2

Python python yolunu bir değişkende saklayın ve çalıştırın, aksi takdirde eksik paketleri içerir.

python_path= `which python` 
$python_path manage.py runserver

1

Benzer bir sorun yaşadım. PyCharm sunucuyu çalıştıramadı ancak komut satırından çalıştırabilirim. Hangi python'u denedim ve PyCharm'ın aynı tercüman olduğundan emin oldum ve sonra her şey yolunda gitti.


1

Bu hata genellikle django yüklü olmadığında oluşur. Zaten django yüklediyseniz ancak yine de aynı hatayı alıyorsanız, ayrı bir sanal ortamda çalışmanız gerekir. Sanal ortamınıza da django yüklemeniz gerekiyor. Sanal makinenin kabuğunda olduğunuzda bunu yapın:

pip install django

Sanal makinenin ayrı dosya sistemi olması, sisteminizde yüklü olsa bile django'yu tanımıyor olmasıdır.


1

#PATH = "$ VIRTUAL_ENV / bin: $ PATH" değerini PATH = "$ PATH: $ VIRTUAL_ENV / bin" olarak değiştirerek bu sorunu çözdüm. yüklü python yapar.


1

================================== ÇÖZÜM =============== ==========================

İlk git: virtualenv

şu komutu çalıştırarak: source bin / enable

ve django'yu yükleyin çünkü 'import django' ile ilgili hatayı alıyorsunuz:

pip install django

O zaman koş:

python manage.py runserver

(Not: 'runserver'ı lütfen çalıştırmak istediğiniz program adıyla değiştirin)

Aynı sorun için benim durumumda çalıştı. ================================== Özet =============== ==========================

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'

Yukarıdaki istisnanın işlenmesi sırasında başka bir istisna oluştu:

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'

Yukarıdaki istisnanın işlenmesi sırasında başka bir istisna oluştu:

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

Yukarıdaki istisnanın işlenmesi sırasında başka bir istisna oluştu:

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?

Django KURULUMU SONRASI:

(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

ÇÖZÜM SONRASI:

(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

İyi şanslar!!


0

projeniz django1ad'dan daha eski bir django-admin.py sürümü kullanılarak oluşturulur

Bunu düzeltmek için başka bir django projesi oluşturun ve manage.py dosyasını kopyalayın ve eskisine yapıştırın


@dontario. Bu değil, 1.3.0 final çalıştıran kişisel bilgisayarımı kullanarak bu projeyi yarattım. Daha eski bir sürümle oluşturulmuş bazı ithal projeler olabilir mi?
grantk

Yeni mange.py'mi yeni uygulamadan da kullanılan eski uygulamaya kopyalamayı denedim ve aynı hatayı alıyorum.
19'da hibe

0

Tamamen bu bir yol sorunu olduğunu kabul etti ama fwiw, ben de aynı hata vardı. Sanal ortamımı kurarken Python çalıştırılabilir dosyam için göreli bir yol kullanma hatasından kaynaklanıyordu. Bunu yapmıştım:

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

Bunun yerine Python çalıştırılabilir dosyasının tam yolunu vermek zorunda kaldım.

HTH, Harlin


0

kaynak ~ / blog-venv / bin / enable

Burada "blog-venv" yerine sanal reklamınızı seçin.


Teşekkürler, bu konuda sorunumu çözdü:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Shailen

0

Doğru Python örneğini yolda doğru dizinlerle çalıştırdığınızdan emin olun. Benim durumumda, bu hata çalıştırılabilir pythondosyayı yanlışlıkla çalıştırmayla sonuçlandı - Django'yu python2.7çerçeve ve kütüphaneler altına kurmuştum. Aynı şey virtualenv sonucu da olabilir.


0

Tamam, şu şekilde gider:

Sanal bir ortam yarattınız ve django modülü sadece bu ortama ait.

daha fazla yardım için bunu yapın:

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

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

2.Alternatif olarak pip veya easy_install komutunu kullanarak django'yu python-> site paketlerine global olarak yükleyebilirsiniz

Pip kullanarak komut: pip install django

o zaman bunu yap:

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

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

Bu yardımcı olur umarım.


0

Startapp komutunu verdim "önce" settings.py "INSTALLED_APPS listesine yeni App adını dahil ettim. Liste girişini kaldırdıktan sonra uygulamayı oluşturabilirim.


0

Bunun yerine 'django-admin' komutunu kullanarak bu sorunu çözdüm:

django-admin startproject _project_name

"django-admin" dosyasına ekli olan ".py" yi kaldırmanız yeterlidir



0

Bunu kullanarak Django'yu yüklediğimi unutmam nedeniyle aldım pip -U, bu yüzden sadece Django uygulamasını çalıştıran kullanıcı tarafından kullanılabilir. Manage.py çalıştırmak için yapmak zorundaydım

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

-2

hepiniz "benim gibi" birinin django'yu sanalenv yüklemeden önce yükleyeceği bir durumdan bahsetmediniz ... bu yüzden benim yaptığım tüm insanlar için ... bunu yaptınız ... Bu yardımcı olur umarım


Bu bir çözüm değil. Steve k.
shanemgrey

başıma bu geldi ve bu şekilde düzelttim ... herhangi bir
aceminin
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.