serii81
@serii81
Я люблю phр...

Как в python запустить скрипт из venv?

Всем привет.
Не могу разобраться с виртуально окружении.
У меня скрипт находится в одной папке.
Я создал виртуальное окружение по инструкции
python -m venv virtualenvname
      source virtualenvname/bin/activate
      touch requirements.txt
      pip freeze


Я так понимаю, что нужно запускать скрипт с python из папки virtualenvname/bin
Тогда зачем нужен activate.

Мне нужно запускать этот скрипт из другой папки.
Специально в zshrc создал алиас
alias activate="source /home/serii/Documents/python-scripts/virtualenvname/bin/activate"


И в терминале высвечивается activate.
660c2508a7ad5015529854.jpeg

Только это ничего не дает.

Я установил пакет termocolor
pip freeze
termcolor==2.4.0


Но когда запускаю скрипт просто как полный путь до файла то выдает ошибку, что termocolor не установлен.
Это значит, что он использует для запуска глобальный python.

А вот так работает, уже высвечивает ошибку установки следующего пакета
❯ /home/serii/Documents/python-scripts/virtualenvname/bin/python3 /home/serii/Documents/python-scripts/acf.py
Traceback (most recent call last):
  File "/home/serii/Documents/python-scripts/acf.py", line 6, in <module>
    from acf_utils.fields.editField import editField
  File "/home/serii/Documents/python-scripts/acf_utils/fields/editField.py", line 9, in <module>
    from acf_utils.group.showGroups import showGroups
  File "/home/serii/Documents/python-scripts/acf_utils/group/showGroups.py", line 2, in <module>
    from prettytable import PrettyTable
ModuleNotFoundError: No module named 'prettytable'


Только я не понимаю зачем activate.

Наверно в pycharm там можно настроить с каким python запускать этот скрипт.
Мне же нежно запускать из терминала из любой папки.

Для меня не очевидно как это работает.

Заранее благодарен.
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
activate нужен, чтобы задать алиас для питона и других утилит из текущего окружения, и ещё парочку переменных среды. Каких - можешь увидеть, открыв скрипт activate.
Если твой скрипт их не использует, то разницы никакой - можешь просто вызывать питон из .venv/bin/python3 и отдавать ему свой скрипт, и всё будет ок.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
01 мая 2024, в 09:23
5000 руб./за проект
01 мая 2024, в 02:11
5000 руб./за проект
01 мая 2024, в 00:29
2000 руб./за проект