#python #django #virtualenv
#python #django #virtualenv
Вопрос:
Я клонировал свой проект Django из учетной записи Github и активировал virtualenv с помощью известной команды source nameofenv/bin/activate
и при запуске python manage.py runserver
Это выдает мне сообщение об ошибке:
Ошибка импорта: не удалось импортировать Django. Вы уверены, что он установлен и доступен в вашей переменной среды PYTHONPATH? Вы забыли активировать виртуальную среду?
Комментарии:
1. Вы уверены, что он установлен? Как вы его установили?
2. Я только что активировал virtualenv и попытался использовать python manage.py команда runserver, я думаю, что после активации virtualenv нет необходимости устанавливать какие-либо зависимости или нет? Я мало что знаю!
3. Но вам все равно нужен Django откуда-то! Как вы ожидаете, что он будет в вашем virtualenv, если вы его не устанавливаете?
4. Я думал, что каждая и каждая зависимость, которая мне нужна, может присутствовать внутри virtualenv. Если это не так, то я ошибался! Это означает, что я должен установить все связанные зависимости этого проекта?
Ответ №1:
Я думал, что каждая и каждая зависимость, которая мне нужна, может присутствовать внутри virtualenv.
Ну, нет. По умолчанию вновь созданный virtualenv поставляется пустым, то есть без сторонней библиотеки. (Необязательно, вы можете разрешить virtualenv получать доступ к библиотекам, установленным в масштабах всей системы, но это уже другая история.)
После создания virtualenv вам необходимо установить необходимые зависимости.
(Как virtualenv может узнать, какие зависимости вам нужны?)
Процедура заключается в установке virtualenv, его активации, а затем установке библиотек, необходимых для проекта (в вашем случае Django и, возможно, других).
Если ваш проект имеет requirements.txt , вы можете установить все необходимые зависимости с помощью команды:
pip install -r requirements.txt
Если ваш проект имеет setup.py , вы также можете выполнить
pip install -e path/to/your/project/clone/.
чтобы установить проект в virtualenv. Это должно установить зависимости.
Конечно, если единственной зависимостью является Django, вы можете просто ввести
pip install django
Комментарии:
1. Вы имеете в виду установку django в папку venv, которая «C:UsersJohn UzomaAppDataLocalPrograms Python Python35 Lib venv»?
2. Что ж, активируйте вновь созданный venv и оттуда выполните
pip install django
. Не копируйте папки вручную.
Ответ №2:
в версии ubuntu
#install python pip
sudo apt-get install python-pip
#install python virtualenv
sudo apt-get install python-virtualenv
# create virtual env
virtualenv myenv
#activate the virtualenv
. myenv/bin/activate
#install django inside virtualenv
pip install django
#create a new django project
django-admin.py startproject mysite
#enter to the folder of the new django project
cd mysite
#run the django project
python manage.py runserver
Комментарии:
1. Извини, брат, я забыл упомянуть, что я работаю на macOS. спасибо за ответ 🙂
2. хорошо, при активации вашего virtualenv, если вы запустите команду pip freeze, она должна возвращать что-то вроде django == ваша версия django попробуйте установить django в свой virtualenv с помощью команды pip install django
3. @abhi_bond Есть ли файл с именем
requirements.txt
в верхнем каталоге вашего проекта?4. @ Dimitris У меня не установлен django, когда я использовал команду pip freeze, кажется, что мне нужно установить Django. Спасибо, приятель 🙂
5. Нет, Ален, я не создавал requirements.txt файл при загрузке этого проекта с моего другого компьютера. В любом случае спасибо 🙂
Ответ №3:
Если у вас python
на вашем компьютере несколько, например, python2.7
, python3.4
, python3.6
, это импорт, чтобы выяснить, на какую версию python
действительно ссылается, и, более того, на какую версию pip
ссылается.
Та же проблема возникла на моем пути после того, как я установил let's encrypt
, когда я запускаю следующую команду.
(python3 manage.py runserver 0:8000 amp;)
Я проверил python
версию и обнаружил, что python3
все , python3.4
, python3.6
, python3.4m
были доступны.
Я просто перешел python3
на python3.6
и решил проблему.
(python3.6 manage.py runserver 0:8000 amp;)
Таким образом, это, вероятно, проблема несоответствия версий, если она работает в течение длительного времени и внезапно падает.
Ответ №4:
Я предполагаю, что вы также загружаете виртуальную среду с другого компьютера. И вы надеетесь, что только активация этого будет работать, bzz.
Не рекомендуется загружать файлы virtualenv в ваш репозиторий git, поскольку @Alain говорит, что хорошей практикой является наличие requirements.txt
файла, содержащего зависимости проекта. Вы можете использовать pip freeze > requirements.txt
(когда среда активирована) для создания файла требований проекта.
Таким образом, при клонировании репозитория с другого компьютера вам необходимо создать новый virtualenv, выполнив команду:
virtualenv nameofenv
затем активируйте его:
source nameofenv/bin/activate
и, наконец, используйте файл требований для установки требований для вашего проекта с помощью:
pip install -r requirements.txt
Ответ №5:
Я установил Django 2 через pip3 install Django
, но python manage.py runserver
вместо этого я запускал python3 manage.py runserver
. Django 2 работает только с python 3 .