Как заставить установить пакет в virtualenv? - PullRequest
0 голосов
/ 31 октября 2018

Пытается установить django с другой версией, которая в системе показывает мне:

Installing collected packages: Django
Found existing installation: Django 1.7.11
Not uninstalling django at /home/user/lib/python2.7, outside environment /home/user/webapps/v2_dev/venv

Успешно установлен Django-1.8.19

Но на самом деле есть старая версия

пробовал с разными командами:

./venv/bin/pip install Django==1.8.11

pip install Django==1.8.11

ОБНОВЛЕНИЕ: Когда я устанавливаю свои пакеты, он показывает:

The required version of setuptools (>=16.0) is not available,
and can't be installed while this script is running. Please
install a more recent version first, using
'easy_install -U setuptools'.
(Currently using setuptools 3.1 (/home/user/lib/python2.7/setuptools-3.1-py2.7.egg))

Когда я делаю обновление:

venv/bin/pip install --upgrade setuptools
Requirement already up-to-date: setuptools in ./venv/lib/python2.7/site-packages (40.5.0)

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

Проблема была в Webfaction VPS

Нужен пустой файл с именем sitecustomize.py в /home/username/webapps/appName/env/lib/python2.

Этот пустой файл переопределяет их настройки Python, одним из которых является включение любых пакетов в каталог ~ / lib / python2.7.

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

0 голосов
/ 31 октября 2018

Вместо установки setuptools и Django, как ./venv/bin/pip install ..., попробуйте сначала активировать виртуальную среду, а затем установить необходимые компоненты.

Активация виртуальной среды:

Перейдите в папку, где находится ваша виртуальная среда (обычно это корневая папка вашего проекта), и введите одно из двух:

  • source venv/bin/activate (системы на основе Unix)
  • venv\Scripts\activate (Windows)

Это гарантирует, что вы не смешиваете пакеты, установленные в разных средах.

Принудительная переустановка пакетов:

  • Простое обновление можно сделать, добавив: --upgrade или -U
  • Принудительную переустановку пакетов можно сделать, добавив: --force-reinstall

В вашем случае (после активации среды) :

python -m pip install -U --force-reinstall setuptools Django

Шаг за шагом:

  1. Деактивировать и удалить старую виртуальную среду
  2. Создание новой среды с использованием python -m virtualenv venv (python 2) или python -m venv venv (python 3)

    python выше - это интерпретатор, который вы хотите использовать в своем проекте. Это единственная точка, в которой вы можете использовать, например, python3 или какой-то абсолютный путь. Позже используйте код как есть.

  3. source venv/bin/activate

    Активация виртуальной среды

  4. python -m pip install -U pip

    Если у вас проблема с ImportError: No module named _internal, то, вероятно, вы используете старую версию pip. Описан вопрос здесь

  5. python -m pip install -U --force-reinstall -r requirements.txt

    -U --force-reinstall - немного избыточно в случае свежей окружающей среды, но это не принесет вреда

  6. Перейдите к месту, где расположен ваш manage.py, и запустите сервер, используя python manage.py runserver

...