lỗi nhập django - Không có mô-đun có tên core.man quản lý


187

Ok, tôi thấy rất nhiều lỗi xung quanh. Tôi đã thử mọi cách tôi biết để làm và chưa tìm ra điều này.

Tôi đang làm việc trên một máy chủ phát triển chạy python 2.5 và Django 1.3. Django 1.3 đã được cài đặt bằng python setup.py cài đặt sau khi giải nén tải xuống tar.gz.

Tất cả đều hoạt động tốt, tôi hiếm khi có nhu cầu chạy manage.pynhưng tôi đang cố gắng sử dụng ứng dụng staticfiles mới và đang gặp vấn đề.

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, vì vậy tôi có PATHvấn đề.

Từ Django cài đặt, tôi kiểm tra lại site-packagesthư mục của mình .

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

Ok, chúng ta hãy kiểm tra những gì tôi có, echo $ PYTHON_PATH trống, vì vậy tôi đã đặt nó

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

Vẫn không có may mắn. Hãy kiểm tra xem sys.path có gì để nói

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

đường dẫn là ở đó, tôi thậm chí đã tạo /usr/lib/python2.5/site-packages/django.pth với nội dung

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

Bất cứ ai cũng có một manh mối cho những gì đang xảy ra ở đây?

Tôi đã tìm thấy một symlink xa hơn trên con đường đang đi vào, nhưng không có lỗi mới.

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

Tôi cũng đã thử tạo một dự án mới để xem liệu có bất kỳ vấn đề nào ở đó không và nhận được cùng một lỗi utils.version.

Nút bên: Unode từ #django đã giúp tôi một chút, thiết lập virtualenv trên cùng một máy và đã khắc phục lỗi nên vẫn không chắc có gì với cài đặt thực tế này ở đây, nhưng có vẻ như không phải trong các dự án django mà là trong django / cài đặt python.


1
Điều gì xảy ra khi bạn gõ import djangovào vỏ trăn?
im lặng1mezzo

@ quiet1mezzo - Ahh quên ném nó vào, không có khiếu nại nào từ vỏ trăn khi nhập django
Grantk

1
Bạn đã chạy python manage.py syncdbchưa
im lặng1mezzo

@silentmezzo - Không phải trên máy này, đã làm như vậy trên máy cá nhân của tôi trước khi chuyển dự án.
cấp

Hãy thử chạy nó trước. Điều này đôi khi có thể gây ra lỗi.
im lặng1mezzo

Câu trả lời:


169

Nếu, giống như tôi, bạn đang chạy django trong virtualenv và gặp lỗi này, hãy nhìn vào manage.py . Dòng đầu tiên sẽ xác định tệp thực thi python được sử dụng để chạy tập lệnh. Đây phải là đường dẫn đến python của virtualenv của bạn, nhưng đó là một cái gì đó sai như / usr / bin / python, không phải là cùng một đường dẫn và sẽ sử dụng môi trường python toàn cầu (và các gói sẽ bị thiếu). Chỉ cần thay đổi đường dẫn vào đường dẫn đến python thực thi trong virtualenv của bạn.

Bạn cũng có thể thay thế dòng shebang của bạn với #!/usr/bin/env python. Điều này nên sử dụng môi trường python và trình thông dịch thích hợp với điều kiện bạn phải kích hoạt virtualenv của mình trước (tôi giả sử bạn biết cách thực hiện việc này).


27
hoặc chạy như thế<path-to-my-env>/bin/python manage.py runserver
geekQ

Cũng phát hiện ra! Đó chính xác là vấn đề!
kstratis

7
Ngoài ra, hãy ... nhớ kích hoạt virtualenv. Ôi!
Alex Mcp 16/12/13

Dù sao, bạn có thể cung cấp một ví dụ về đường dẫn đến python thực thi trong virtualenv của bạn. Ví dụ: đường dẫn đến env ảo của tôi là / Users / Chris / virtualenv / my_first_venv và tôi đã tạo dòng đầu tiên #! / Users / Chris / virtualenv / my_first_venv /, nhưng tôi vẫn gặp lỗi tương tự. Tôi nghĩ rằng tôi có thể đang làm gì đó sai với shebang ...
Chris

Bạn có thể đã quên thêm python thực thi ở cuối đường dẫn: #!/Users/Chris/virtualenv/my_first_venv/bin/pythonhoặc cái gì đó dọc theo cái này?
Steve K

40

Nếu bạn đang ở trong một virtualenv, bạn cần kích hoạt nó trước khi bạn có thể chạy ./manage.py 'lệnh'

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

nếu bạn cấu hình workon trong .bash_profile hoặc .bashrc

workon yourvirtualenvname

* vui lòng không chỉnh sửa tệp Manage.txt của bạn có thể hoạt động không đúng cách và có thể cung cấp cho bạn các lỗi trong tương lai


Điều này cũng đã làm điều đó cho tôi sau khi đốt cháy nửa đêm vật lộn để làm cho nó hoạt động. Cảm ơn bạn rất nhiều @ elin3t.
Yax

30

Tôi gặp vấn đề tương tự vì tôi đã cài đặt Django như một siêu người dùng, do đó không có trong virtualenv của tôi. Bạn không nên làmsudo pip install Django

Thay vào đó, hãy cài đặt nó theo cách này:

$ source ./bin/activate
$ pip install Django

Nhưng không có sudo, bạn sẽ nhận được: OSError: [Errno 13] Quyền bị từ chối: '/opt/local/
L Library / Frameworks / Python.framework / Varions / 2.7

15

Xin vui lòng, cài đặt lại django với pip:

sudo pip install --upgrade django==1.3

(Thay thế 1.3 thành phiên bản django của bạn)


25
Không được khuyến khích. Sử dụng sudođể cài đặt vào các thư mục hệ thống sẽ can thiệp vào các gói gốc và hầu hết có thể phá vỡ ít nhất một số phần trong cài đặt python của bạn. Tôi muốn giới thiệu virtualenv.
Noufal Ibrahim

11

Như đã biết đây là một vấn đề con đường.

cơ sở của các gói tùy chỉnh của tôi đã chia sẻ tên với một thư mục được đặt trong / etc / profile. Các gói ở một vị trí khác nhau tuy nhiên đối với máy chủ web. Vì vậy, tôi đã xóa các mục vi phạm khỏi $ PYTHONPATH của mình và thật tốt để đi!

Cảm ơn đã giúp đỡ.


10

Một lý do có thể khác cho vấn đề này là hệ điều hành của bạn chạy python3 theo mặc định.

Hoặc bạn phải làm rõ ràng: python2 manage.py

hoặc bạn cần chỉnh sửa shebang của manage.py, như vậy:

#!/usr/bin/env python2

hoặc nếu bạn đang sử dụng python3:

#!/usr/bin/env python3

đối với tôi, tôi phải làm#!/usr/bin/env python2.7
Vic

8

Tôi có lỗi này trong khi cố gắng để chạy một hệ thống nhúng (sử dụng django tất nhiên) trên một Raspberry Pi 2 (và không một VM )

Chạy này:

 sudo pip install Django

Thực hiện các mẹo!

  • chỉ trong trường hợp một người sử dụng Raspbian / Jessie có được điều này

6

Bạn có thể đang sử dụng virtualenvwrapper . Đừng quên chọn môi trường của bạn bằng cách chạy:

$ workon env_name

4

Đối với tôi, máy chủ của tôi đã sử dụng Python 2.4. Tôi chỉ cần tra cứu Python 2.7, được cài đặt trên máy chủ của tôi và tạo ra một bí danh.

alias python=python2.7

Nếu bạn cần biết thêm, tôi đã tìm thấy giải pháp ở đây


4

Tôi đã gặp vấn đề tương tự trong khi tôi cố gắng tạo một ứng dụng mới. Nếu bạn viết python manage.py startapp myapp, thì nó sẽ tìm usr / bin / python. Nhưng bạn cần " python " này nằm trong thư mục / bin của đường dẫn env ảo của bạn . Tôi đã giải quyết điều này bằng cách đề cập đến con đường python của virtualenv như thế này:

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

3

Hãy thử thay đổi dòng quản lý đầu tiên của bạn.

Thay đổi

#!/usr/bin/python

bởi

#!/usr/bin/env python

3
Điều ngược lại đã giúp tôi. Thay thế #!/usr/bin/env pythonbởi#!/usr/bin/python
curreggie

env là một thùng unix chung để nhận các liên kết bin môi trường os, tùy thuộc vào cấu hình hệ điều hành hoặc cài đặt python, bin có thể nằm trong một đường dẫn khác với / usr / bin / và giải pháp của bạn sẽ không hoạt động, cũng sẽ không hoạt động nếu 'env' bin được cài đặt ở một vị trí khác nhau.
Gabriel Cavalcante

3
python3 manage.py runserver

Kiểm tra phiên bản Python


3

Đã giải quyết nó !!!

Sau khi tìm kiếm từ lâu và thử tất cả các đề xuất khác không hoạt động, cuối cùng tôi đã tìm thấy giải pháp cho thiết lập của mình.

Thiết lập / kịch bản của tôi:

  • Windows, Python27
  • Dự án django của tôi được kiểm tra qua svn
  • Khi chạy python Manage.txt ranerver trong thư mục mới, tôi đã gặp lỗi nhập
  • python Manage.txt ranerver được sử dụng để làm việc trong thư mục gốc (mà tôi sẽ cam kết thay đổi từ đó) cho đến khi tôi xóa nó

Giải pháp

Xóa bất kỳ thư mục có tên django trong cùng thư mục của Manage.txt

Đúng vậy ... ngay khi tôi xóa thư mục "django" chỉ chứa một __init__ phút tệp ... tôi có thể chạy lại máy chủ!

Không biết tại sao


Bởi vì một thư mục có tệp __init__.py được coi là mô-đun python . Vì vậy, bạn không nên đặt tên cho thư mục mô-đun ngụ ý django
kaushal agrawal 28/03/18


2

Lưu trữ đường dẫn python python trong một biến và thực thi. Điều này sẽ bao gồm các gói bị thiếu.

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

1

Tôi đã có một vấn đề tương tự. PyCharm không thể chạy máy chủ nhưng tôi có thể chạy nó từ dòng lệnh. Tôi đã thử con trăn nào và sau đó đảm bảo rằng PyCharm là trình thông dịch tương tự và sau đó mọi thứ đều hoạt động tốt.


1

Lỗi này thường xảy ra khi django không được cài đặt. Nếu bạn đã cài đặt django nhưng vẫn gặp lỗi tương tự, thì bạn phải làm việc trong môi trường ảo riêng biệt. Bạn cần phải cài đặt django trong môi trường ảo của bạn. Khi bạn ở trong vỏ của máy ảo, chỉ cần làm điều này:

cài đặt django

Đó là bởi vì máy ảo có hệ thống tệp riêng biệt, nó không nhận ra django ngay cả khi nó được cài đặt trên hệ thống của bạn.


1

Tôi đã khắc phục sự cố này bằng cách thay đổi #PATH = "$ VIRTUAL_ENV / bin: $ PATH" thành PATH = "$ PATH: $ VIRTUAL_ENV / bin" Vì những lý do không rõ ràng đối với tôi, con trăn thực thi trong diren ảo không thấy django nhưng thông thường cài đặt python nào.


1

================================== GIẢI PHÁP =============== ==========================

Goto đầu tiên: virtualenv

bằng cách chạy lệnh: bin bin / kích hoạt

và cài đặt django vì bạn đang gặp lỗi liên quan đến 'nhập django':

pip install django

Sau đó chạy:

python manage.py runserver

(Lưu ý: vui lòng thay đổi 'máy chủ' thành tên chương trình bạn muốn chạy)

Đối với cùng một vấn đề, nó đã làm việc trong trường hợp của tôi. ================================== Tóm tắt =============== ==========================

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'

Trong quá trình xử lý ngoại lệ trên, một ngoại lệ khác đã xảy ra:

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'

Trong quá trình xử lý ngoại lệ trên, một ngoại lệ khác đã xảy ra:

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

Trong quá trình xử lý ngoại lệ trên, một ngoại lệ khác đã xảy ra:

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?

SAU KHI CÀI ĐẶT 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

SAU KHI GIẢI QUYẾT:

(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

Chúc may mắn!!


0

dự án của bạn được tạo bằng phiên bản cũ của django-admin.py, cũ hơn django1.3

để khắc phục điều này, hãy tạo một dự án django khác và sao chép quản lý của nó và dán nó vào dự án cũ


@dontario. Không phải cái này, tôi đã tạo dự án này bằng máy tính cá nhân của tôi chạy bản 1.3.0 cuối cùng. Có một số dự án nhập khẩu đã được tạo ra với một phiên bản cũ hơn có thể là nó?
cấp

Tôi đã thử sao chép mange.py mới của mình từ ứng dụng mới sang ứng dụng cũ cũng được sử dụng và vẫn gặp lỗi tương tự.
cấp

0

Đồng ý hoàn toàn rằng đây là một vấn đề đường dẫn nhưng fwiw, tôi đã có lỗi tương tự. Đó là do lỗi sử dụng một đường dẫn tương đối để thực thi Python của tôi khi thiết lập môi trường ảo của tôi. Tôi đã làm điều này:

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

Thay vào đó tôi phải đưa ra đường dẫn đầy đủ để thực thi Python.

HTH, Harlin


0

nguồn ~ / blog-venv / bin / kích hoạt

chọn virtualenv của bạn để thay thế "blog-venv" tại đây.


Cảm ơn, điều đó đã giải quyết vấn đề của tôi liên quan đến vấn đề này:File "manage.py", line 8, in <module> from django.core.management import execute_from_ ImportError: No module named django.core.management
Shailen

0

Hãy chắc chắn rằng bạn đang chạy đúng phiên bản Python với các thư mục phù hợp trên đường dẫn. Trong trường hợp của tôi, lỗi này là do chạy chương trình pythonthực thi do tai nạn - tôi thực sự đã cài đặt Django trong python2.7khuôn khổ & thư viện. Điều tương tự cũng có thể xảy ra như là kết quả của virtualenv.


0

Đượ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 đó. Vì vậy, virtualenv tự cô lập với mọi thứ khác, do đó bạn đang thấy điều này.

trải qua điều 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 của bạn và sau đó chạy mô-đun django.

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

Lệnh sử dụng pip: pip cài đặt django

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

nhập django print (django.get_version ()) (tùy thuộc vào phiên bản python nào bạn sử dụng. Điều này cho loạt python 3+)

và sau đó bạn có thể chạy cái này: python Manage.txt ranerver và kiểm tra trên trình duyệt web của bạn bằng cách gõ: localhost: 8000 và bạn sẽ thấy trang hỗ trợ django.

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


0

Tôi đã bao gồm tên của Ứng dụng mới vào danh sách INSTALLED_APPS trong cài đặt "trước khi" tôi ban hành lệnh startapp. Khi tôi xóa mục nhập danh sách, tôi có thể tạo ứng dụng.


0

Tôi đã giải quyết vấn đề này bằng cách sử dụng lệnh 'django-admin' như sau:

django-admin startproject _project_name

chỉ cần xóa ".py" được đính kèm vào "django-admin"



0

Tôi đã nhận được điều này do quên rằng tôi đã cài đặt Django pip -U, vì vậy nó chỉ có sẵn cho người dùng chạy ứng dụng Django của tôi. Để chạy Manage.py tôi phải làm

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

-2

tất cả các bạn đã không đề cập đến trường hợp ai đó "thích tôi" sẽ cài đặt django trước khi cài đặt virtualenv ... vì vậy với tất cả những người cùng loại của tôi nếu bạn đã làm điều đó ... hãy cài đặt lại django sau khi kích hoạt virtualenv..i hi vọng điêu nay co ich


Đây không phải là một giải pháp. Đó là một nhận xét về một giải pháp khác của Steve k.
shanemgrey

đó là những gì đã xảy ra với tôi và đó là cách tôi sửa nó ... đó là một sai lầm mà bất kỳ người mới bắt đầu nào cũng có thể mắc phải
Dever
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.