"ImportError: Не удалось импортировать Django."даже после установки Django в Virtualenv - PullRequest
0 голосов
/ 26 сентября 2019

Я новичок в Python, и я только начинаю изучать Django.У меня есть концепция создания виртуальной среды, установки в нее Django, а затем настройки структуры моего проекта.Но тогда, должно быть, я что-то напутал, потому что моя команда "python manage.py migrate" возвращает ошибку, что не может найти модуль с именем Django, несмотря на тот факт, что я только что установил Django.Вот что я сделал:

PS D:\f drive\KK\Projects\Git\python\Dev> virtualenv kk_env
Using base prefix 'c:\\program files\\python37'
New python executable in D:\f drive\KK\Projects\Git\python\Dev\kk_env\Scripts\python.exe
Installing setuptools, pip, wheel...
done.
PS D:\f drive\KK\Projects\Git\python\Dev> pipenv --python 3.7 install django==2.2
Virtualenv already exists!
Removing existing virtualenv…
Creating a virtualenv for this project…
Pipfile: D:\f drive\KK\Projects\Git\python\Dev\Pipfile
Using C:/Python/Python37-32/python.exe (3.7.4) to create virtualenv…
[=   ] Creating virtual environment...Already using interpreter C:\Python\Python37-32\python.exe
Using base prefix 'C:\\Python\\Python37-32'
New python executable in C:\Users\karthik\.virtualenvs\Dev-g5SlP1CQ\Scripts\python.exe
Installing setuptools, pip, wheel...
done.
Running virtualenv with interpreter C:/Python/Python37-32/python.exe

Successfully created virtual environment!
Virtualenv location: C:\Users\karthik\.virtualenvs\Dev-g5SlP1CQ
Creating a Pipfile for this project…
Installing django==2.2…
Adding django to Pipfile's [packages]…
Installation Succeeded
Pipfile.lock not found, creating…
Locking [dev-packages] dependencies…
Locking [packages] dependencies…
Success!
Updated Pipfile.lock (f002eb)!
Installing dependencies from Pipfile.lock (f002eb)…
  ================================ 3/3 - 00:00:01
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
PS D:\f drive\KK\Projects\Git\python\Dev> pipenv shell
Launching subshell in virtual environment…
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

PS D:\f drive\KK\Projects\Git\python\Dev> deactivate
PS D:\f drive\KK\Projects\Git\python\Dev> kk_env/Scripts/activate
(kk_env) PS D:\f drive\KK\Projects\Git\python\Dev> django-admin startproject dj_site
(kk_env) PS D:\f drive\KK\Projects\Git\python\Dev> mv dj_site dj_root
(kk_env) PS D:\f drive\KK\Projects\Git\python\Dev> cd dj_root
(kk_env) PS D:\f drive\KK\Projects\Git\python\Dev\dj_root> ls


    Directory: D:\f drive\KK\Projects\Git\python\Dev\dj_root


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----        9/27/2019  12:12 AM                dj_site
-a----        9/27/2019  12:12 AM            648 manage.py


(kk_env) PS D:\f drive\KK\Projects\Git\python\Dev\dj_root> python manage.py migrate
Traceback (most recent call last):
  File "manage.py", line 10, in main
    from django.core.management import execute_from_command_line
ModuleNotFoundError: No module named 'django'

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "manage.py", line 21, in <module>
    main()
  File "manage.py", line 16, in main
    ) from exc
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?

Как видно из истории моей PowerShell, я следую соглашениям из двух разных уроков и подозреваю, что это как-то связано с этим провалом (мой лучшийдумаю, для установки Django используется "pipenv" против "pip". Но это мой второй вопрос).

У меня сейчас два вопроса:

  1. Как сделатьЯ выхожу из этой ситуации?(Я прилагаю снимок экрана со структурой моего проекта, если он мне поможет)

  2. В своей предыдущей попытке (после n попыток) я выполнил почти те же самые шагиза исключением использования 'pip install "django> = 2.2, <3"' для установки Django.Все работало нормально, за исключением того, что я не видел ни «pipfile», ни «pipfile.lock», созданных как часть этой установки.Я смутно понимаю, что pipfile необходим для переносимости моего проекта, и я действительно хотел сделать это правильно, выполняя основы.Это (отсутствие pip-файла) можно ожидать или мне лучше заняться садоводством? </p>

Скриншот проекта VS Code

Ответы [ 2 ]

0 голосов
/ 26 сентября 2019

Ваша первая команда - PS D:\f drive\KK\Projects\Git\python\Dev> virtualenv kk_env создает виртуальную среду в вашем pwd.

Ваша вторая команда - PS D:\f drive\KK\Projects\Git\python\Dev> pipenv --python 3.7 install django==2.2 создает виртуальную среду на C:\Users\karthik\.virtualenvs\Dev-g5SlP1CQ, как видно из операторов вывода -

Successfully created virtual environment!
Virtualenv location: C:\Users\karthik\.virtualenvs\Dev-g5SlP1CQ

Теперь вы устанавливаете Django в вышеуказанной виртуальной среде ине в kk_env.Это может быть причиной того, что вы получили ошибку, описанную в вопросе.

Вы можете выполнить следующие команды в той последовательности, в которой они отображаются, чтобы достичь желаемого результата!

  1. virtualenv kk_venv
  2. kk_env/Scripts/activate
  3. pip install django

Надеюсь, эта помощь!

0 голосов
/ 26 сентября 2019

Похоже, что вы находитесь не в той виртуальной среде, и вы оставили созданный pipenv и вошли в другой, на котором не установлен Django.

Вы, вероятно, правы, что этоделать со следующими двумя процессами.Вместо этого вам, вероятно, будет проще использовать только pipenv.

Чтобы выйти, просто удалите ваш каталог и откройте новое окно powershell.

Тогда все, что вам действительно нужно, если вы ужеу вас установлен pipenv, что похоже на то, что вы делаете, это:

pipenv install django
pipenv shell
django-admin startproject dj_site
cd dj_site
python manage.py migrate
...
...