Django:pythonmanage.py运行服务器(多个错误)



我最近开始使用Django作为我的第一个web应用程序,遵循youtube上的教程,一切都很顺利,直到出现以下命令:$ python manage.py runserver,这意味着我能够创建一个虚拟环境,并使用:$ python3 -m django startproject <projectname>创建一个项目。

以下是我的manage.py的样子:

"""Django's command-line utility for administrative tasks."""
import os
import sys

def main():
"""Run administrative tasks."""
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'django_blog.settings')
try:
from django.core.management import execute_from_command_line
except ImportError as exc:
raise 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?"
)
execute_from_command_line(sys.argv)

if __name__ == '__main__':
main()

以下是我的一些不同尝试和错误:

$ python manage.py runserver错误:

File "manage.py", line 22, in <module>
main()
File "manage.py", line 14, in main
"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?

尝试n°1:

$ python pip install django错误:python: can't open file 'pip': [Errno 2] No such file or directory$ python -m pip install gekko$ python pip install django之后仍然给出与上述相同的错误

尝试n°2:

$ python3 manage.py runserver$ python3.6 manage.py runserver都给出了相同的错误:

File "/usr/local/lib/python3.6/sqlite3/dbapi2.py", line 27, in <module>
from _sqlite3 import *
ModuleNotFoundError: No module named '_sqlite3'

尝试使用:$ pip3 install pysqlite3$ sudo apt-get install libsqlite3-dev然后在里面~/Downloads/Python-3.6.2$ ./configure --enable-loadable-sqlite-extension && make && sudo make install

但问题依然存在。

尝试n°3:

$ python3.5 manage.py runserver

Traceback (most recent call last):
File "manage.py", line 11, in main
from django.core.management import execute_from_command_line
ImportError: No module named 'django'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "manage.py", line 22, in <module>
main()
File "manage.py", line 14, in main
"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?

这是最近的错误:

from django.urls import path
ImportError: cannot import name path

这是我的urls.py

from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]

以下是我在linux 上运行sudo tree命令时得到的结果

thalagalage@3n1gm4:~/chamika/Python/DjangoBlog$ sudo tree
.
├── django_blog
│   ├── django_blog
│   │   ├── asgi.py
│   │   ├── __init__.py
│   │   ├── __init__.pyc
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-36.pyc
│   │   │   ├── settings.cpython-36.pyc
│   │   │   └── urls.cpython-36.pyc
│   │   ├── settings.py
│   │   ├── settings.pyc
│   │   ├── urls.py
│   │   ├── urls.pyc
│   │   └── wsgi.py
│   ├── manage.py
│   └── manage.sublime-workspace
└── django_env
├── bin
│   ├── activate
│   ├── activate.csh
│   ├── activate.fish
│   ├── activate.ps1
│   ├── activate_this.py
│   ├── activate.xsh
│   ├── django-admin
│   ├── django-admin.py
│   ├── easy_install
│   ├── easy_install3
│   ├── easy_install-3.6
│   ├── easy_install3.6
│   ├── pip
│   ├── pip3
│   ├── pip-3.6
│   ├── pip3.6
│   ├── __pycache__
│   │   └── django-admin.cpython-36.pyc
│   ├── python -> /usr/bin/python3
│   ├── python3 -> python
│   ├── python3.6 -> python
│   ├── sqlformat
│   ├── wheel
│   ├── wheel3
│   ├── wheel-3.6
│   └── wheel3.6

以下是我使用的逐步进入虚拟环境的命令,直到我被抛出ModuleNotFoundError: No module named '_sqlite3'manage.py runserver命令卡住为止。

thalagalage@3n1gm4:~/chamika/Python/DjangoBlog$ ll
total 16
drwxr-xr-x  4 thalagalage thalagalage 4096 sept.  5 19:02 ./
drwxrwxr-x 11 thalagalage thalagalage 4096 sept.  5 18:13 ../
drwxr-xr-x  3 thalagalage thalagalage 4096 sept.  5 19:32 django_blog/
drwxr-xr-x  4 thalagalage thalagalage 4096 sept.  5 18:03 django_env/
thalagalage@3n1gm4:~/chamika/Python/DjangoBlog$ source django_env/bin/activate
(django_env) thalagalage@3n1gm4:~/chamika/Python/DjangoBlog$ python3 -m django --version
3.1.1
(django_env) thalagalage@3n1gm4:~/chamika/Python/DjangoBlog$ cd django_blog
(django_env) thalagalage@3n1gm4:~/chamika/Python/DjangoBlog/django_blog$ ll
total 32
drwxr-xr-x 3 thalagalage thalagalage  4096 sept.  5 19:32 ./
drwxr-xr-x 4 thalagalage thalagalage  4096 sept.  5 19:02 ../
drwxr-xr-x 3 thalagalage thalagalage  4096 sept.  6 01:02 django_blog/
(django_env) thalagalage@3n1gm4:~/chamika/Python/DjangoBlog/django_blog$ python3 manage.py runserver

感谢您的帮助

您应该做的第一件事是创建一个虚拟环境。虚拟环境是放置包的地方,例如Django就是其中一个模块。为了创建一个虚拟环境,您有多种选择,如pipenvvirtualenv等。

A( Virtualenv

  1. 您可以使用以下命令安装virtualenv
pip3 install virtualenv
  1. 创建一个新的虚拟机。常见的虚拟机名称有venvenv
virtualenv --python=python3 --no-site-package <virtualenv-name>
#example:
virtualenv --python=python3 --no-site-package venv
  1. 激活虚拟机。在当前目录中打开终端(在linux和Mac OSX中(或powershell(在windows中(,并执行以下命令:
source <virtualenv-name>/bin/activate
  1. 安装所需的软件包。你的虚拟人的名字应该在附文中预先加在外壳上
(<virtualenv-name>) pip3 install django
  1. 最终成功运行服务器
(<virtualenv-name>) python3 manage.py runserver

B( Pipenv

  1. 安装pipenv
pip3 install pipenv

或者在linux中,您可以执行以下行:

sudo apt install software-properties-common python-software-properties
sudo add-apt-repository ppa:pypa/ppa
sudo apt update
sudo apt install pipenv
  1. 要使用pipenv创建新环境,您必须在终端中输入以下行
pipenv --python 3.6
  1. 安装所需的软件包
pipenv install django
  1. 运行服务器
python3 manage.py runserver

PS:如果你在运行项目时仍然有问题,最好从头开始创建一个新项目:

  1. 如上所述创建一个新的虚拟机。

  2. 激活虚拟机。

  3. 安装Django。

(venv) pip3 install django
  1. 创建新的django项目
(venv) django-admin startproject <project-name>
  1. 将目录更改为django项目目录,然后运行服务器
(venv) cd <project-name>
(venv) python3 manage.py makemigrations
(venv) python3 manage.py migrate
(venv) python3 manage.py runserver

可能会为您的项目使用类似于pipenv的venv

pip3 install pipenv

pipenv install django安装您想要使用的必要软件包

pipenv shell激活venv

py manage.py runserver

相关内容

最新更新