Запустить виртуальную среду глобально? - PullRequest
0 голосов
/ 13 июня 2019

Есть ли способ сделать workon глобальным?Например;Я открываю терминал и набираю workon myenvname --global, затем открываю другое окно терминала и набираю что-то вроде python myscript.py, и он будет запускаться в среде myenvname?

Также я могу затем открыть Sublime Text IDE и создатьсценарий python, затем нажмите CTRL + b, и сценарий python будет выполняться в среде myenvname.

Возможно ли такое?

Ответы [ 2 ]

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

Надеюсь, это кому-нибудь поможет

Возможно, вы не сможете запустить его глобально, но если вы хотите запустить определенный скрипт на python, не входя в virtualenv.Вот обходной путь.

Учитывая, что вы используете это в linux .

Скажем, у вас есть virtualenv под названием myenvname

Вы хотели бызапустить определенный скрипт Python myscript.py внутри этого конкретного myenvname, даже не используя терминал, просто дважды щелкнув значок.

Создать сценарий оболочки myshellscript.sh

#!/bin/bash

# open the virtual environment
source /home/usr_name/.virtualenvs/myenvname

# location to the python script you want to run
# python/python3 depending on the version you are using
python location/to/your/python/script/myscript.py

Дать разрешениедля myshellscript.sh быть исполняемым

chmod +x myshellscript.sh

Создать файл .desktop внутри /usr/share/applications/

sudo nano /usr/share/applications/myscript.desktop

копировать вставитьблок кода и внесите соответствующие изменения

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=shellscript file to be run along with its path
Path=directory where the file is located
Name=myscript
Comment=comment here
Icon=icon path here

, затем дайте разрешение на myscript.desktop

chmod +x /usr/share/applications/myscript.desktop

Все готово.

Просто зайдите /usr/share/applications/ и дважды щелкните значок myscript, вы получите myscript.py работающий

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

Нет.Виртуальные среды должны быть активированы в каждой оболочке (т. Е. В каждом терминале) отдельно.

В виртуальных средах Python нет магии.Их активация просто устанавливает несколько переменных окружения;наиболее важным является PATH, поэтому текущая оболочка находит python и pip.Затем python, запускаемый из виртуального окружения, обнаруживает его и устанавливает sys.path соответственно.

В некоторой степени вы можете выполнить трюк без активации: запустить python из виртуального окружения:

/path/to/venv/bin/python myscript.py
...