JawsIk
@JawsIk
Python Django, Lua, ЧПУ-станки(ArtCam, Aspire)

Где в Linux поднастроить, чтобы виртуальное окружение Python работало правильно?

Суть в чём. Раньше (около 3 лет назад) начал вести разработку дома на виртуальной машине VmWare.
Собрал образ:
Ubuntu 18 LTS . Python 3.6 . PostgreSQL . GIT . Celery и прочая.
установил venv и вёл разработку Django 2.2.3
Сделал проект. Запустил на VPS клиента в работу. Получил денежку.
Со временем жизнь поменялась. Программирование стала далеко не основным занятием. Работать стал не дома. Но спустя какое-то время клиент обратился ко мне за модернизацией проекта. Я открыл виртуальную машину. Она прекрасно запустилась, только Ubuntu попросила некоторые обновления. На новой работе, я решил развернуть похожую конфигурацию, чтобы одновременно работать и дома и на работе над проектом.
Поэтому я взял папку с проектом и папку с виртуальным окружением. Запаковал через tar (чтобы права на файлы тоже сохранились)
На работе установил VmWare Player и создал вирт-машинку с Ubuntu 18 (комп на работе крайне странно повёл себя с Ubuntu 20, поэтому поставил 18-ю и не парился).
Распаковал файлы. Установил PyCharm и указал где проект, а где venv. Запустил и всё заработало с первого раза. Стал работать над проектом на работе и дома одновременно. Через GIT всё легко синхронизировал.
Сделал некоторый визуал, обновил немного функционал. Исправил некоторые костыли.
Но вдруг мне понадобились новые расширения для Python.

Я запустил терминал и обнаружил такую ситуацию. Что не смотря на то, что после активации venv приглашение, показывает, что я нахожусь якобы в нём. По факту же команда pip3 freeze показывает мне модули глобального python , а не моего виртуального окружения. Сначала я это поведение обнаружил в PyCharm. Подумал, зайду ка я через терминал и всё сделаю вручную. Но оказалось, что и в терминале тоже самое. Несмотря на показываемое приглашение (venv_ws), pip3 freeze показывает модули глобального питона.

Странность (для меня и скорее всего по незнанию) ещё заключается в том, что когда я запускаю Django-проект через PyCharm (нажимаю так сказать на кнопочку "зелёного треугольника" или запускаю через debug), то проект прекрасно работает. Через любой браузер я взаимодействую с проектом. Т.е. каким-то чудом PyCharm запускает правильное виртуальное окружение, но при этом в терминале (хоть через тот же встроенный в PyCharm, хоть через основной Ubuntu) не смотря на приглашение, я не могу достучаться до реальности виртуального окружения. pip3 freeze даже не показывает, что там установлена Django.
И соответственно при установке каких либо доп. пакетов через pip3, они устанавливаются в глобальный python, а в виртуальное окружение проекта не попадают.

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

Что мне исправить (я думаю что в конфиге видимо виртуального окружения), чтобы оно начало работать правильно?

Подскажите в каких файлах и что именно.

С уважением.
  • Вопрос задан
  • 174 просмотра
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Python
Седой и строгий
Виртуальные окружения не переносимы, нужно было создать новое, а не копировать.
Ответ написан
Комментировать
@9en9i
Лучше таким не заниматься, а иметь файлик requirements.txt и хранить там зависимости, которые при необходимости можно будет установить в новое окружение
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы