我想通过桌面图标直接启动激活了 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
应该可以正常工作 ;)