全局运行虚拟环境?

时间:2019-06-13 05:07:10

标签: virtualenv virtualenvwrapper

有什么办法可以使workon成为全球性的?例如;我打开终端并输入workon myenvname --global,然后打开另一个终端窗口并输入类似python myscript.py的东西,它将在myenvname环境下运行它吗?

然后我也可以打开Sublime Text IDE并创建一个python脚本,然后按CTRL + b,然后python脚本将在myenvname环境中运行。

这可能吗?

2 个答案:

答案 0 :(得分:0)

不。必须在每个外壳程序(即每个终端)中分别激活虚拟环境。

在Python虚拟环境中没有魔术。它们的激活仅设置了一些环境变量。最重要的是PATH,以便当前shell找到pythonpip。然后,从虚拟环境运行的python会检测到它并相应地设置sys.path

您可以在不激活的情况下做一些技巧:从虚拟环境运行python

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

答案 1 :(得分:0)

希望它对某人有帮助

您可能无法全局运行它,但是如果要运行特定的python脚本而不进入virtualenv。这是解决方法。

考虑到您正在Linux上使用它

假设您有一个名为myenvname的虚拟环境

您想在特定的myscript.py内运行特定的python脚本myenvname,甚至不需通过双击图标即可使用终端。

创建shell脚本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