【问题标题】:Run a virtual environment globally?全局运行虚拟环境?
【发布时间】:2019-06-13 05:07:10
【问题描述】:

有没有办法让workon 成为全球性的?例如;我打开终端并输入workon myenvname --global,然后我打开另一个终端窗口并输入类似python myscript.py 的内容,它会在myenvname 环境下运行吗?

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

这样的事情可能吗?

【问题讨论】:

    标签: virtualenv virtualenvwrapper


    【解决方案1】:

    没有。必须在每个 shell(即每个终端)中分别激活虚拟环境。

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

    在某种程度上你可以在不激活的情况下做一个技巧:从虚拟环境中运行python

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

    【讨论】:

      【解决方案2】:

      希望对某人有所帮助

      您可能无法在全局范围内运行它,但如果您想在不进入 virtualenv 的情况下运行特定的 python 脚本。这是一个解决方法。

      考虑到您在 linux 上使用它

      假设你有一个名为myenvname的virtualenv

      您想在这个特定的myenvname 中运行特定的python 脚本myscript.py,甚至不使用终端,只需双击一个图标。

      创建一个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

      /usr/share/applications/ 中创建一个.desktop 文件

      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 就会运行

      【讨论】:

        猜你喜欢
        • 2017-07-03
        • 1970-01-01
        • 2020-01-16
        • 2015-04-07
        • 2019-01-19
        • 1970-01-01
        • 2018-02-08
        • 1970-01-01
        • 2019-09-24
        相关资源
        最近更新 更多