Установленный Virtualenv и активация virtualenv не работают

#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 .