Django - “không có mô-đun nào có tên django.core.management”


104

Tôi gặp lỗi sau khi cố gắng chạy Django từ dòng lệnh.

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

Bất kỳ ý tưởng về cách giải quyết này?


Chính xác thì bạn đang cố gắng chạy cái gì, phiên bản nào của Python, phiên bản của Django, v.v.?
Jon Clements

Phiên bản của máy chủ cục bộ của tôi là Python 2.6.6 và 1.4.3 Dyango. Máy chủ Python là 2.6.6 và đối với Dyango không thể kiểm tra nếu biết cách kiểm tra?
Krasimir

Tôi gặp lỗi này một cách ngẫu nhiên khi cố gắng di chuyển và tôi đang ở trong môi trường ảo có cài đặt Django. Tôi chỉ cần chạy lại lệnh và nó hoạt động.
aalaap

Tôi có cùng một lỗi này. Tôi đã cài đặt django nhưng tôi đã cài đặt nó trong thư mục gói phân phối. Dockerfile sử dụng hình ảnh cơ sở ubuntu. Vì vậy, tôi đã cập nhật Dockerfile để thêm tệp này ENV PYTHONPATH="$PYTHONPATH:/usr/lib/python2.7/dist-packages:/usr/local/lib/python2.7/dist-packages"nhưng nó vẫn không tải ứng dụng django.
alltej

Câu trả lời:


55

Có vẻ như bạn chưa cài đặt django. Bạn nên kiểm tra thư mục được tạo bởi lệnh này:

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

Để xem bạn có các gói django trong đó không.

Nếu không có thư mục django bên trong gói trang, thì bạn chưa cài đặt django (ít nhất là đối với phiên bản python đó).

Có thể bạn đã cài đặt nhiều phiên bản python và django nằm trong phiên bản khác. Bạn có thể tìm hiểu tất cả các phiên bản của python nếu bạn nhập pythonvà sau đó nhấn TAB. Đây là tất cả những con trăn khác nhau mà tôi có.

$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

Bạn có thể thực hiện lệnh trên cho từng phiên bản python và xem bên trong thư mục gói trang của từng phiên bản để xem có phiên bản nào được cài đặt django hay không. Ví dụ:

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

Nếu bạn tình cờ tìm thấy django bên trong nói python2.6, hãy thử lệnh ban đầu của bạn với

python2.6 manage.py ...

Đây là những gì xuất hiện ngay sau lệnh "/usr/lib/python2.6/site-packages"
Krasimir

Đi vào thư mục "/usr/lib/python2.6/site-packages" và xem có thư mục tên là django bên trong không.
RaviU 23/12/12

Evrything else not Django: D
Krasimir

Xin chào, vui lòng kiểm tra câu trả lời đã chỉnh sửa của tôi. Có thể django của bạn nằm trong một phiên bản khác của python.
RaviU 23/12/12

1
Nếu bạn đã cài đặt django bằng virtualenv hoặc trong môi trường ảo, bạn phải ở trong môi trường ảo để nó chạy, trừ khi bạn đã cài đặt nó trong hệ thống toàn cầu.
Ramon Suarez

41
sudo pip install django --upgrade 

đã làm thủ thuật cho tôi.


4
Câu trả lời của bạn phù hợp với tôi, vì vậy tôi đã ủng hộ nó. Tuy nhiên, chỉ cần câu trả lời của bạn một mình là không đủ, bởi vì khi tôi chạy sudo pip install django --upgradenó đã cho tôi một lỗi mới: No module named psycopg2. Vì vậy, tôi đã chạy sudo pip install psycopg2 --upgrade, và nó đã thành công.
Dorian Dore

2
Hóa ra tôi chưa cài đặt django ... Mặc dù tôi đã sử dụng nó trước đây trên máy. Kỳ dị.
James111

Tôi đã gặp vấn đề về thời gian chờ nên tôi đã làm sudo pip install --default-timeout=100 django --upgradevà mọi việc diễn ra suôn sẻ.
Zap

Nếu bạn đang sử dụng "pyenv", bạn sẽ cần những thứ sau:pip install django --upgrade --user
Inyoka

30

Tôi gặp lỗi tương tự và tôi đã sửa nó theo cách này:

Tôi đã phải kích hoạt môi trường ảo của mình bằng lệnh sau

source python2.7/bin/activate

22

Hầu hết có thể trong manage.pydòng đầu tiên của bạn bắt đầu với !/usr/bin/pythonđiều đó có nghĩa là bạn đang sử dụng python toàn cầu của hệ thống chứ không phải là python trong môi trường ảo của bạn.

vì vậy hãy thay thế

/usr/bin/python

với

~/projectpath/venv/bin/python

và bạn nên tốt.


Cảm ơn. Nó đã giúp đỡ.
Serg Smyk

Dự án của tôi có một tập lệnh bash được gọi là một phần của ứng dụng và trong tập lệnh bash python startappđó, vì vậy tôi phải thay đổi nó thành /path/to/venv/bin/python startappvà nó hoạt động. Cảm ơn bạn đã chỉ ra điều này!!
Gordster

13

tốt, tôi gặp phải lỗi tương tự hôm nay sau khi cài đặt virtualenv và django. Đối với tôi, đó là tôi đã sử dụng sudo ( sudo pip install django ) để cài đặt django và tôi đang cố gắng chạy trình chạy management.py mà không có sudo . Tôi vừa thêm sudo và nó đã hoạt động. :)


10

Bạn có đang sử dụng Môi trường ảo với Virtual Wrapper không? Bạn đang sử dụng máy Mac?

Nếu vậy hãy thử điều này:

Nhập thông tin sau vào dòng lệnh của bạn để khởi động môi trường ảo và sau đó làm việc trên nó

1.)

source virtualenvwrapper.sh

hoặc là

source /usr/local/bin/virtualenvwrapper.sh

2.)

workon [environment name]

Lưu ý (từ người mới) - không đặt dấu ngoặc nhọn xung quanh tên môi trường của bạn


Tôi mất như hai giây để tìm ra rằng virtualenv chưa được kích hoạt, nhưng đây là vấn đề của tôi ... vì vậy hãy ủng hộ vì tôi đã nhấn google vào nút google một lần và không đọc bất kỳ thứ gì xuất hiện.
RobotHumans

7

Tôi đang gặp sự cố tương tự khi chạy lệnh-

python management.py startapp <app_name>

nhưng vấn đề với tôi là tôi đã chạy lệnh đó ngoài môi trường ảo. Vì vậy, chỉ cần kích hoạt môi trường ảo của bạn trước và chạy lại lệnh -


1
Dự án của tôi có một tập lệnh bash được gọi là một phần của ứng dụng và trong tập lệnh bash python startappđó, vì vậy tôi phải thay đổi nó thành /path/to/venv/bin/python startappvà nó hoạt động.
Gordster

5

Sự cố này xảy ra khi django không được cài đặt trên máy tính của bạn. Khi django không được cài đặt có nghĩa là mô-đun django.core.management cũng không được cài đặt. Vì vậy, nó không tìm thấy mô-đun này và nó báo lỗi.
Để giải quyết vấn đề này, chúng ta nên cài đặt django bằng pip. Mở cmd dòng comand (trên windows) và nhập là

pip install django

Lệnh này sẽ cài đặt django trong máy tính của bạn. Nếu bạn không có pip cài đặt. bạn nên cài đặt pip. Đây là cách cài đặt pip trên windows


5

Tôi trải qua điều tương tự và đây là những gì tôi làm.

Đầu tiên tôi cài đặt

pip install -r request.txt

không có trong môi trường hoạt động của tôi. Vì vậy, tôi đã làm là kích hoạt môi trường của mình sau đó chạy lại

pip install -r request.txt


4

Được rồi, nó sẽ như thế này:

Bạn đã tạo một môi trường ảo và mô-đun django chỉ thuộc về môi trường đó.

đi qua phần này để được hỗ trợ thêm:

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

1.Bạn có thể chuyển sang thư mục lưu trữ môi trường ảo và sau đó chạy mô-đun django.

2. Ngoài ra, bạn có thể cài đặt django trên toàn cầu vào gói trang web python-> của mình bằng cách chạy pip hoặc easy_install

Lệnh sử dụng pip: pip install django

sau đó làm điều này:

import django print (django.get_version ()) (tùy thuộc vào phiên bản python bạn sử dụng. Cái này dành cho dòng python 3+)

và sau đó bạn có thể chạy this: python management.py runningerver và kiểm tra trình duyệt web của mình bằng cách nhập: localhost: 8000 và bạn sẽ thấy trang được cung cấp bởi django.

Hi vọng điêu nay co ich.


3

Trong trường hợp điều này hữu ích cho người khác ... Tôi đã gặp sự cố này vì virtualenv của tôi được đặt mặc định thành python2.7 và tôi đang gọi Django bằng Python3 trong khi sử dụng Ubuntu.

để kiểm tra xem virtualenv của tôi đang sử dụng python nào:

$ which python3
>> /usr/bin/python3

đã tạo virtualenv mới với python3 được chỉ định (sử dụng trình bao bọc virtualenv https://virtualenvwrapper.readthedocs.org/en/latest/ ):

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

đường dẫn python bây giờ sẽ trỏ đến virtualenv python:

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

2

Điều này cũng xảy ra nếu bạn thay đổi cấu trúc thư mục của dự án python của mình (tôi đã làm điều này và sau đó bối rối về sự thay đổi trong hành vi). Nếu bạn làm như vậy, bạn sẽ cần phải thay đổi một dòng trong tệp / bin / active của mình. Vì vậy, giả sử dự án của bạn ở

/User/me/CodeProjects/coolApp/

và tệp kích hoạt của bạn ở

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

khi bạn thiết lập dự án của mình, thì bạn đã thay đổi dự án của mình thành

/User/me/CodeProjects/v1-coolApp/

hoặc một cái gì đó. Sau đó, bạn sẽ cần phải mở

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

tìm dòng nó nói

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

và thay đổi nó thành

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

trước khi kích hoạt lại


2

Trong trường hợp của tôi, tôi đang sử dụng Ubuntu. Vấn đề có thể là tôi không có quyền ghi vào thư mục đó như một người dùng bình thường. Bạn chỉ cần thêm vào sudotrước lệnh của mình và nó sẽ hoạt động hoàn hảo. Trong trường hợp của tôi sudo python manage.py syncdb.


2

Tôi đã gặp vấn đề tương tự và lý do tôi nhận được thông báo này là vì tôi đang thực hiện "management.py runningerver" trong khi thực hiện "python management.py runningerver" đã sửa nó.


2
Lưu ý rằng nếu Python 3 được sử dụng, nó cần phải được python3 manage.py runserver. Nếu không, lỗi nhập vẫn sẽ ở đó.
rbaleksandar

2

Tôi đã gặp vấn đề tương tự và cách sau hoạt động tốt, bạn nên điều hướng thư mục chính trong dự án của mình hơn là loại:

source bin/activate 

1

có cùng sự cố. lệnh run 'python management.py migrate' làm thư mục gốc. hoạt động tốt với quyền truy cập root (sudo python management.py migrate)


1
Đó là kiểu điều trị triệu chứng không phải nguyên nhân. Nếu sudo hoạt động, đó có thể là vấn đề về quyền.
evandentremont

Chắc chắn, chỉ là một cách để chẩn đoán vấn đề.
Hemanth Gowda

1

Trường hợp của tôi, tôi đã sử dụng pyCharm 5 trên mac. Tôi cũng gặp sự cố này và sau khi chạy lệnh này, sự cố của tôi đã được giải quyết

sudo pip install django --upgrade 

1

Bạn có thể thử nó như sau: python3 manage.py migrate(make sur để có trong src/thư mục)

Bạn cũng có thể thử với pip install -r requirements.txt(chắc chắn bạn sẽ thấy requirements.txttệp khi bạn nhập lssau khi di chuyển

Nếu sau tất cả, nó vẫn không hoạt động, hãy thử pip install django

Hy vọng nó giúp


0

Trước tiên, bạn phải chọn Dự án của mình trước khi chạy máy chủ, workon your_project_name sau đó nhập python manage.py runserver


-1

Xung đột quyền sở hữu Tệp và Thư mục sẽ gây ra sự cố ở đây. Đảm bảo quyền sở hữu của các thư mục và tệp trong dự án thuộc về người dùng hiện tại. (Bạn có thể thay đổi chúng bằng cách sử dụng lệnh chown với tùy chọn -R.) Thử chạy lại lệnh: điều này đã giải quyết vấn đề cho tôi khi chạy qua mẫu "Ứng dụng Django đầu tiên":

python manage.py startapp polls

-1

Tôi gặp sự cố tương tự khi cố sử dụng máy chủ chạy python management.py . Trong trường hợp của tôi, tôi chỉ sử dụng sudo su . Sử dụng thiết bị đầu cuối làm gốc và thử lại vì nó hoạt động một phần. Vì vậy, tôi sử dụng python management.py migrate comand và nó đã sửa được.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.