通过桌面图标启动包含虚拟环境的脚本

通过桌面图标启动包含虚拟环境的脚本

我想通过桌面图标直接启动激活了 tensorflow 环境的 Spyder。为此,我创建了一个桌面图标,启动虚拟环境,然后启动我的应用程序。已经有很多帖子了,但我找不到针对这个确切问题的解决方案。这是我的 spyder.sh 文件:

#!/bin/bash
source /home/alexis/tensorflow/bin/activate
spyder3

这是我的桌面条目:

[Desktop Entry]
Version=1.0
Name=Spyder     
Comment=Spyder
Exec='/home/alexis/Launcher/spyder.sh'
Icon=spyder3
Terminal=true
Type=Application
Categories=Application;
Name[en_US]=Spyder

这些文件有chmod +x。从终端,脚本按预期工作。从桌面,脚本启动 Spyder,但环境未激活。我遗漏了什么?

相关问题没有回答我的问题: 如何制作桌面图标来启动程序?如何自动激活 Python 环境

答案1

要在虚拟环境中运行你的 Python 脚本,你只需执行虚拟环境文件夹的 bin 文件夹中的 Python 二进制文件。

即:如果您的虚拟环境中/home/alexis/myvirtualenv,并且您想要执行的脚本被命名/home/alexis/scripts/my_python_file.py,您将必须通过以下方式运行您的 python 脚本:

/home/alexis/myvirtualenv/bin/python /home/alexis/scripts/my_python_file.py

满足您的特定需求: 尝试将以下代码放入其中spyder.sh

#!/bin/bash
/home/alexis/tensorflow/bin/python spyder3  # you may have to put the full path to spyder3

答案2

我以前也遇到过类似的问题。区别在于交互式 shell 和非交互式 shell。因此更改#!/bin/bash#!/bin/bash -i应该可以正常工作 ;)

相关内容