如何使用 conda 环境为 anaconda spyder 设置不同的桌面启动器?

Posted

技术标签:

【中文标题】如何使用 conda 环境为 anaconda spyder 设置不同的桌面启动器?【英文标题】:How to set up different desktop launchers for anaconda spyder using conda environments? 【发布时间】:2017-02-07 20:53:58 【问题描述】:

我创建了一个虚拟机,用于即将举行的数据科学讲座。我将 CentOS 最小化安装到 Virtualbox 中,并包含一个 XFCE 桌面。我还使用 Anaconda mini 和 conda 环境管理器安装了两个分析堆栈 python 版本(2.7、3.5)。

我使用以下命令设置了默认环境之外的另一个环境:

conda create --name py3datascience numpy pandas scikit-learn matplotlib beautifulsoup4 cairo hdf5 jupyter nltk patsy pytables pystan pymc requests sas7bdat seaborn sqlite statsmodels spyder

正如预期的那样,我现在有一个名为 py3datascience 的附加环境。我可以使用以下命令从终端启动 Spyder(连接到此环境):

source activate py3datascience
spyder

一切都按预期进行。我想创建一个桌面快捷方式来在这个特定环境中启动 Spyder(以及我将安装的 Python 2.7 的另一个桌面快捷方式),但我无法做到。

我使用以下命令创建了一个 shell 脚本:

source activate py3datascience
spyder

并将其放在 /home/user/scripts 中。当我从终端运行此脚本时,它按预期工作(Spyder 在正确的环境中启动)。我尝试创建一个可以运行此脚本的 *.desktop 文件,但它不起作用。它无法启动 Spyder,但也无法给我一条错误消息。这是我失败的桌面文件的内容:

[Desktop Entry]
Version=1.0
Type=Application
Name=SpyderPy3
Comment=
Exec=/home/user1/scripts/SpyderPy3.sh
Icon=
Path=
Terminal=false
StartupNotify=true

我在 conda 命令创建的相应环境文件夹中找到了一个 .desktop 文件,它在这里:

/home/user1/anaconda/envs/py3datascience/share/applications/spyder3.desktop

[Desktop Entry]
Version=1.0
Type=Application
Name=SpyderPy3
Comment=
Exec=/home/user1/scripts/SpyderPy3.sh
Icon=
Path=
Terminal=false
StartupNotify=true

我可能缺乏 linux 技能,所以我正在寻求有关如何继续的帮助。基本问题是,在使用 conda 设置不同的环境后,如何创建桌面或面板快捷方式(在 linux 中,特别是带有 XFCE 的 CentOS)到适当的 Spyder 安装?终端中的以下命令可以完成此操作,但我需要一个面板或桌面快捷方式:

source activate py3datascience
spyder

【问题讨论】:

【参考方案1】:

经过一番研究,我发现了我的问题。

我需要创建一个包含以下内容的 *.desktop 文件:

[Desktop Entry]
Version=1.0
Type=Application
Name=Spyder py3
Comment=
Exec=xfce4-terminal -e "bash -c 'cd /home/user1/anaconda/bin;source activate py3ds;spyder'"
Icon=
Path=
Terminal=true
StartupNotify=false

有点解释...如果我打开终端外壳并输入以下命令,环境被激活,然后 Spyder 被启动:

source activate py3ds
spyder

我不需要在任何特定目录中才能工作。但是,在创建 .desktop 文件并输入 shell 命令时,我需要先 cd 到相应的目录,然后运行 ​​source activate。也许我也可以在 source activate 命令中指定完整路径。

【讨论】:

这不起作用。窗口弹了一会儿又消失了。【参考方案2】:

路径同时发生了变化,co_biostat 的答案 (https://***.com/a/39799876/7235455) 中的 Exec 行可以简化。对于像我这样正在寻找更新版本的人,这是我的 .desktop 文件:

[Desktop Entry]
Version=1.0
Type=Application
Name=Spyder 5
GenericName=Spyder 5
Comment=The Scientific Python Development Environment
TryExec=/home/xxx/anaconda3/bin/spyder
Exec=/home/xxx/anaconda3/bin/spyder %F
Categories=Development;Science;IDE;Qt;
Icon=/home/xxx/anaconda3/share/icons/spyder.png
Terminal=false
StartupNotify=true
MimeType=text/x-python;

假设您将 Anaconda 安装在默认位置,只需将 TryExecExecIcon 行中的“xxx”替换为您的用户名即可。如果您安装在自定义位置,请相应更改路径。

【讨论】:

以上是关于如何使用 conda 环境为 anaconda spyder 设置不同的桌面启动器?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Anaconda (Conda) 环境中跟踪 pip 安装的软件包?

Anaconda-- conda 创建、激活、退出、删除虚拟环境(转)

配置conda环境

Anaconda-用conda创建python虚拟环境

anaconda / conda 环境复制和迁移

conda创建python环境