Django -“ ไม่มีโมดูลชื่อ django.core.management”


104

ฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อพยายามเรียกใช้ Django จากบรรทัดคำสั่ง

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

มีความคิดเกี่ยวกับวิธีแก้ปัญหานี้หรือไม่?


คุณกำลังพยายามเรียกใช้ Python เวอร์ชันใดเวอร์ชันของ Django และอื่น ๆ ... ?
Jon Clements

เวอร์ชันของโฮสต์ภายในของฉันคือ Python 2.6.6 และ 1.4.3 Dyango Python server คือ 2.6.6 และสำหรับ Dyango ไม่สามารถตรวจสอบได้ว่า know how to check?
Krasimir

ฉันได้รับข้อผิดพลาดนี้แบบสุ่มขณะพยายามย้ายข้อมูลและฉันอยู่ในสภาพแวดล้อมเสมือนจริงที่ติดตั้ง Django ฉันเพียงแค่เรียกใช้คำสั่งอีกครั้งและใช้งานได้
aalaap

ฉันมีข้อผิดพลาดเดียวกันนี้ ฉันติดตั้ง django แล้ว แต่ติดตั้งอยู่ในไดเร็กทอรี dist-package Dockerfile ใช้อิมเมจพื้นฐานของอูบุนตู ดังนั้นฉันจึงอัปเดต Dockerfile เพื่อเพิ่มสิ่งนี้ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"แต่ยังไม่โหลดแอป django
alltej

คำตอบ:


55

ดูเหมือนว่าคุณไม่ได้ติดตั้ง django ไว้ คุณควรตรวจสอบไดเร็กทอรีที่สร้างโดยคำสั่งนี้:

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

เพื่อดูว่าคุณมีแพ็คเกจ django อยู่ในนั้นหรือไม่

หากไม่มีโฟลเดอร์ django ในไซต์แพ็กเกจแสดงว่าคุณไม่ได้ติดตั้ง django ไว้ (อย่างน้อยสำหรับ python เวอร์ชันนั้น)

เป็นไปได้ว่าคุณติดตั้ง python มากกว่าหนึ่งเวอร์ชันและ django อยู่ในเวอร์ชันอื่น คุณสามารถค้นหาเวอร์ชันทั้งหมดของ python ได้หากคุณพิมพ์pythonแล้วกด TAB นี่คืองูหลามที่แตกต่างกันทั้งหมดที่ฉันมี

$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

คุณสามารถทำคำสั่งด้านบนสำหรับ python แต่ละเวอร์ชันและดูภายในไดเร็กทอรี site-package ของแต่ละเวอร์ชันเพื่อดูว่ามี django ติดตั้งอยู่หรือไม่ ตัวอย่างเช่น:

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

หากคุณพบ django ใน python2.6 พูดให้ลองใช้คำสั่งเดิมของคุณด้วย

python2.6 manage.py ...

นี่คือสิ่งที่เกิดขึ้นหลังจากคำสั่ง "/usr/lib/python2.6/site-packages"
Krasimir

เข้าไปในโฟลเดอร์ "/usr/lib/python2.6/site-packages" และดูว่ามีโฟลเดอร์ชื่อ django อยู่ข้างในหรือไม่
RaviU

สิ่งอื่นที่ไม่ใช่ Django: D
Krasimir

สวัสดีโปรดตรวจสอบคำตอบที่แก้ไขของฉัน บางที django ของคุณอาจอยู่ใน python เวอร์ชันอื่น
RaviU

1
หากคุณติดตั้ง django โดยใช้ Virtualenv หรือขณะอยู่บนสภาพแวดล้อมเสมือนคุณจะต้องอยู่ในสภาพแวดล้อมเสมือนเพื่อให้มันทำงานได้เว้นแต่คุณจะติดตั้งลงในระบบทั่วโลก
Ramon Suarez

41
sudo pip install django --upgrade 

ทำเคล็ดลับให้ฉัน


4
คำตอบของคุณได้ผลสำหรับฉันดังนั้นฉันจึงให้คะแนนโหวตเพิ่ม แต่เพียงคำตอบของคุณเพียงอย่างเดียวไม่เพียงพอเพราะเมื่อฉันวิ่งมันทำให้ผมผิดพลาดใหม่:sudo pip install django --upgrade No module named psycopg2ดังนั้นฉันวิ่งsudo pip install psycopg2 --upgradeและมันก็เป็นเคล็ดลับ
Dorian Dore

2
ปรากฎว่าฉันไม่ได้ติดตั้ง django ... แม้ว่าฉันจะเคยใช้มันมาก่อนบนเครื่อง แปลก.
James111

ฉันมีปัญหาเรื่องการหมดเวลาดังนั้นฉันจึงทำsudo pip install --default-timeout=100 django --upgradeและทุกอย่างก็ราบรื่น
แซบ

หากคุณใช้ "pyenv" คุณจะต้องมีสิ่งต่อไปนี้:pip install django --upgrade --user
Inyoka

30

ฉันได้รับข้อผิดพลาดเดียวกันและแก้ไขในลักษณะนี้:

ฉันต้องเปิดใช้งานสภาพแวดล้อมเสมือนของฉันโดยใช้คำสั่งต่อไปนี้

source python2.7/bin/activate

22

ส่วนใหญ่ในmanage.pyบรรทัดแรกของคุณอาจเริ่มต้นด้วย!/usr/bin/pythonซึ่งหมายความว่าคุณกำลังใช้ global python ของระบบแทนที่จะใช้ในสภาพแวดล้อมเสมือนของคุณ

ดังนั้นแทนที่

/usr/bin/python

ด้วย

~/projectpath/venv/bin/python

และคุณควรจะดี


ขอบคุณ. มันช่วยได้
Serg Smyk

โครงการของฉันมีสคริปต์ทุบตีที่เรียกส่วนหนึ่งของแอปและในสคริปต์ทุบตีpython startappนั้นฉันจึงต้องเปลี่ยนเป็น/path/to/venv/bin/python startappและใช้งานได้ ขอบคุณที่ชี้แจ้ง !!
Gordster

13

ฉันพบข้อผิดพลาดเดียวกันในวันนี้หลังจากติดตั้ง Virtualenv และ django สำหรับฉันมันคือการที่ฉันมี sudo สินค้า ( sudo pip ติดตั้ง Django ) สำหรับการติดตั้ง Django และผมพยายามที่จะเรียกใช้runserver manage.pyโดยไม่ต้องsudo ฉันเพิ่งเพิ่ม sudo และใช้งานได้ :)


10

คุณใช้ Virtual Environment กับ Virtual Wrapper หรือไม่? คุณใช้ Mac หรือไม่?

หากเป็นเช่นนั้นให้ลองทำดังนี้

ป้อนสิ่งต่อไปนี้ลงในบรรทัดคำสั่งของคุณเพื่อเริ่มต้นสภาพแวดล้อมเสมือนจากนั้นทำงานกับมัน

1. )

source virtualenvwrapper.sh

หรือ

source /usr/local/bin/virtualenvwrapper.sh

2. )

workon [environment name]

หมายเหตุ (จากมือใหม่) - อย่าใส่วงเล็บรอบชื่อสภาพแวดล้อมของคุณ


ฉันใช้เวลาสองวินาทีในการพิจารณาว่าไม่ได้เปิดใช้งาน Virtualenv แต่นี่เป็นปัญหาของฉัน ...
RobotHumans

7

ฉันมีปัญหาเดียวกันขณะเรียกใช้คำสั่ง -

python Manage.py startapp <app_name>

แต่ปัญหากับฉันคือฉันกำลังเรียกใช้คำสั่งนั้นจากสภาพแวดล้อมเสมือนดังนั้นเพียงเปิดใช้งานสภาพแวดล้อมเสมือนของคุณก่อนแล้วเรียกใช้คำสั่งอีกครั้ง -


1
โครงการของฉันมีสคริปต์ทุบตีที่เรียกส่วนหนึ่งของแอปและในสคริปต์ทุบตีpython startappนั้นฉันจึงต้องเปลี่ยนเป็น/path/to/venv/bin/python startappและใช้งานได้
Gordster

5

ปัญหานี้เกิดขึ้นเมื่อไม่ได้ติดตั้ง django บนคอมพิวเตอร์ของคุณ เมื่อไม่ได้ติดตั้ง django ซึ่งหมายความว่าไม่ได้ติดตั้งโมดูล django.core.management มันไม่พบโมดูลนี้และทำให้เกิดข้อผิดพลาด
สำหรับการแก้ปัญหานี้เราควรติดตั้ง django โดยใช้ pip เปิด comand line cmd (บน windows) แล้วพิมพ์เป็น

pip install django

คำสั่งนี้จะติดตั้ง django ในคอมพิวเตอร์ของคุณ หากคุณไม่มี pip ติดตั้ง คุณควรติดตั้ง pip วิธีการติดตั้ง pip บน windows


5

ฉันประสบสิ่งเดียวกันและนี่คือสิ่งที่ฉันทำ

ก่อนอื่นการติดตั้งไฟล์

pip install -r requirements.txt

ไม่ได้อยู่ในสภาพแวดล้อมที่ใช้งานของฉัน ดังนั้นฉันจึงเปิดใช้งานสภาพแวดล้อมของฉันจากนั้นเรียกใช้ไฟล์

pip install -r requirements.txt


4

โอเคมันจะเป็นแบบนี้:

คุณได้สร้างสภาพแวดล้อมเสมือนและโมดูล django เป็นของสภาพแวดล้อมนั้นเท่านั้นเนื่องจาก Virtualenv แยกตัวเองจากสิ่งอื่น ๆ ดังนั้นคุณจึงเห็นสิ่งนี้

ผ่านสิ่งนี้เพื่อรับความช่วยเหลือเพิ่มเติม:

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

1. คุณสามารถเปลี่ยนไปใช้ไดเร็กทอรีที่จัดเก็บสภาพแวดล้อมเสมือนของคุณจากนั้นเรียกใช้โมดูล django

2. หรือคุณสามารถติดตั้ง django ทั่วโลกไปยัง python-> site-package ของคุณได้โดยใช้ pip หรือ easy_install

คำสั่งโดยใช้ pip: pip install django

จากนั้นทำสิ่งนี้:

นำเข้าพิมพ์ django (django.get_version ()) (ขึ้นอยู่กับเวอร์ชันของ python ที่คุณใช้สำหรับ python 3+ series)

จากนั้นคุณสามารถเรียกใช้สิ่งนี้: python Manage.py runningerver และตรวจสอบบนเว็บเบราว์เซอร์ของคุณโดยพิมพ์: localhost: 8000 และคุณจะเห็นหน้าขับเคลื่อน django

หวังว่านี่จะช่วยได้


3

ในกรณีนี้จะเป็นประโยชน์กับผู้อื่น ... ฉันมีปัญหานี้เนื่องจาก Virtualenv ของฉันผิดนัดเป็น python2.7 และฉันกำลังเรียก Django โดยใช้ Python3 ในขณะที่ใช้ Ubuntu

เพื่อตรวจสอบว่า python ใดที่ฉันใช้ Virtualenv:

$ which python3
>> /usr/bin/python3

สร้าง Virtualenv ใหม่พร้อมระบุ python3 (ใช้ Virtualenv wrapper https://virtualenvwrapper.readthedocs.org/en/latest/ ):

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

เส้นทาง python ควรชี้ไปที่ python Virtualenv:

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

2

สิ่งนี้จะเกิดขึ้นเช่นกันหากคุณเปลี่ยนโครงสร้างไดเร็กทอรีของโครงการ python ของคุณ (ฉันทำสิ่งนี้แล้วก็งงงวยกับการเปลี่ยนแปลงพฤติกรรม) หากคุณทำเช่นนั้นคุณจะต้องเปลี่ยนบรรทัดในไฟล์ / bin / enable สมมติว่าโครงการของคุณอยู่ที่

/User/me/CodeProjects/coolApp/

และไฟล์เปิดใช้งานของคุณอยู่ที่

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

เมื่อคุณตั้งค่าโครงการของคุณคุณก็เปลี่ยนโครงการของคุณเป็น

/User/me/CodeProjects/v1-coolApp/

หรือบางสิ่งบางอย่าง. จากนั้นคุณจะต้องเปิด

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

ค้นหาบรรทัดที่ระบุ

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

และเปลี่ยนเป็น

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

ก่อนเปิดใช้งานอีกครั้ง


2

ในกรณีของฉันฉันใช้ Ubuntu ปัญหาอาจเกิดจากฉันไม่ได้รับอนุญาตให้เขียนลงในโฟลเดอร์นั้นในฐานะผู้ใช้ปกติ คุณสามารถเพิ่มsudoก่อนคำสั่งของคุณและควรทำงานได้อย่างสมบูรณ์ sudo python manage.py syncdbในกรณีของฉัน


2

ฉันมีปัญหาเดียวกันและสาเหตุที่ฉันได้รับข้อความนี้เป็นเพราะฉันกำลังทำ "Manage.py runerver" ในขณะที่การทำ "python Manage.py runerver" ได้รับการแก้ไข


2
โปรดทราบว่าถ้างูหลาม 3 python3 manage.py runserverถูกนำมาใช้จะต้องมี มิฉะนั้นข้อผิดพลาดในการนำเข้าจะยังคงมีอยู่
rbaleksandar

2

ฉันมีปัญหาเดียวกันและต่อไปนี้ใช้งานได้ดีคุณควรไปที่โฟลเดอร์หลักในโครงการของคุณมากกว่าประเภท:

source bin/activate 

2

กรณีของฉันฉันใช้ pyCharm 5 บน Mac ฉันมีปัญหานี้ด้วยและหลังจากเรียกใช้คำสั่งนี้ปัญหาของฉันได้รับการแก้ไข

sudo pip install django --upgrade 

1

มีปัญหาเดียวกันกับคำสั่ง run 'python Manage.py migrate' เป็นรูท ทำงานได้ดีกับการเข้าถึงรูท (sudo python Manage.py migrate)


1
นั่นเป็นการรักษาอาการไม่ใช่สาเหตุ หาก sudo ใช้งานได้อาจเป็นปัญหาการอนุญาต
evandentremont

แน่นอนว่าเป็นเพียงวิธีการวินิจฉัยปัญหา
Hemanth Gowda

1

คุณสามารถลองได้ดังนี้: python3 manage.py migrate(ทำให้ sur อยู่ในsrc/ไดเร็กทอรี)

นอกจากนี้คุณยังสามารถลองใช้pip install -r requirements.txt(ทำให้คุณเห็นrequirements.txtไฟล์เมื่อคุณพิมพ์lsหลังจากย้ายข้อมูล

หากยังไม่ได้ผลให้ลอง pip install django

หวังว่าจะช่วยได้



-1

ความขัดแย้งในการเป็นเจ้าของไฟล์และไดเรกทอรีจะทำให้เกิดปัญหาที่นี่ ตรวจสอบให้แน่ใจว่าการเป็นเจ้าของไดเร็กทอรีและไฟล์ภายใต้โปรเจ็กต์เป็นของผู้ใช้ปัจจุบัน (คุณสามารถเปลี่ยนได้โดยใช้คำสั่ง chown ด้วยตัวเลือก -R) ลองเรียกใช้คำสั่งใหม่: สิ่งนี้ช่วยแก้ปัญหาให้ฉันได้เมื่อเรียกใช้ตัวอย่าง "แอป Django แรก":

python manage.py startapp polls

-1

ฉันมีปัญหาเดียวกันพยายามที่จะใช้runserver หลาม manage.py ในกรณีของฉันฉันเพียงแค่ใช้sudo su ใช้เทอร์มินัลเป็นรูทและลองอีกครั้งซึ่งใช้งานได้บางส่วน ดังนั้นฉันจึงใช้ python Manage.py migrate comand และแก้ไข

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.