有什么办法可以使workon
成为全球性的?例如;我打开终端并输入workon myenvname --global
,然后打开另一个终端窗口并输入类似python myscript.py
的东西,它将在myenvname
环境下运行它吗?
然后我也可以打开Sublime Text IDE并创建一个python脚本,然后按CTRL
+ b
,然后python脚本将在myenvname
环境中运行。
这可能吗?
答案 0 :(得分:0)
不。必须在每个外壳程序(即每个终端)中分别激活虚拟环境。
在Python虚拟环境中没有魔术。它们的激活仅设置了一些环境变量。最重要的是PATH
,以便当前shell找到python
和pip
。然后,从虚拟环境运行的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