Форум сайта python.su
Всем добрый вечер! Есть проблемка, которую пока не смог разрешить. Описываю суть: с помощью утилиты venv, встроенной в питон, я создал виртуальную папку my_env, в которой (если быть точным, то в подкаталоге lib, находящимся в каталоге my_env) установлен фреймворк Pyramid, При запуске однофайлового “проекта” Pyramid “Hello world” (https://docs.pylonsproject.org/projects/pyramid/en/latest/quick_tutorial/hello_world.html) оказалось, что активация виртуальной папке не требуется, всё заработало, т.е. по указанному порту в браузере я нашёл приветствие. Но это-то как раз и смущает. Папка-то не активирована, а фреймворк под установленным питоном 3.6.3 пашет (т.е. питоновский веб-сервер запустился). В связи с этим возникли вопросы:
1. Почему скрипт работает (см. адрес выше)?
2. Какова “физика” активации? Понятно. что $ source $VENV/bin/activate, но это как раз и не потребовалось.
Заранее благодарю за светлые мысли.
Офлайн
виртуалка нужна для песочницы. если не активирована - запускается системный питон и библиотеки из системного окружения
Офлайн
vic57
В том-то и дело, что не системный. В системе у меня 3.5, а в виртуалке 3.6. Да и ставил я виртуалку через утилиту Pyenv. И никакой пирамиды в системе нет. Однако идёт обращение к конфигуратору пирамиды и т.п. Собственно, и в примере виртуалка устанавливается, но почему-то не активируется.
Офлайн
посмотрите
pip3 list
pip3 show [package]
Офлайн
incomer17Просто подменяются системные пути к питону в данном процессе оболочки Shell. А deactivate - это временная функция в оболочке Shell (созданная через activate), которая подменяет пути обратно, типа ничего не было.
2. Какова “физика” активации?
Офлайн
vic57, А вот pip list и pip show срабатывают только при активации ($ source $VENV/bin/activate).
eugene@eu-IP-U430p:~$ cd $VENV # вошёл в мою виртуальную НЕактивированную папку my_env
eugene@eu-IP-U430p:~/.pyenv/versions/3.6.3/my_env$ pip list
pyenv: version `pyramid' is not installed (set by /home/eugene/.pyenv/.python-version) # пирамида, как видим, не обнаружена
eugene@eu-IP-U430p:~/.pyenv/versions/3.6.3/my_env$ source bin/activate # активируем папку и всё ОК.
(my_env) eugene@eu-IP-U430p:~/.pyenv/versions/3.6.3/my_env$ pip list -l
arrow (0.12.0)
attrs (17.3.0)
beautifulsoup4 (4.6.0)
binaryornot (0.4.4)
certifi (2017.11.5)
Chameleon (3.2)
chardet (3.0.4)
click (6.7)
colander (1.4)
cookiecutter (1.6.0)
coverage (4.4.2)
deform (2.0.4)
future (0.16.0)
hupper (1.0)
idna (2.6)
iso8601 (0.1.12)
Jinja2 (2.10)
jinja2-time (0.2.0)
Mako (1.0.7)
MarkupSafe (1.0)
PasteDeploy (1.5.2)
peppercorn (0.5)
pip (9.0.1)
plaster (1.0)
plaster-pastedeploy (0.4.1)
pluggy (0.6.0)
poyo (0.4.1)
py (1.5.2)
Pygments (2.2.0)
pyramid (1.9.1)
pyramid-chameleon (0.3)
pyramid-debugtoolbar (4.3)
pyramid-jinja2 (2.7)
pyramid-mako (1.0.2)
pytest (3.3.1)
pytest-cov (2.5.1)
python-dateutil (2.6.1)
repoze.lru (0.7)
requests (2.18.4)
setuptools (38.2.4)
six (1.11.0)
SQLAlchemy (1.1.15)
translationstring (1.3)
urllib3 (1.22)
venusian (1.1.0)
waitress (1.1.0)
WebOb (1.7.3)
WebTest (2.0.29)
whichcraft (0.4.1)
zope.deprecation (4.3.0)
zope.interface (4.4.3)
(my_env) eugene@eu-IP-U430p:~/.pyenv/versions/3.6.3/my_env$
Отредактировано incomer17 (Янв. 8, 2018 16:10:13)
Офлайн