windows在WSL+CONDA环境自启动

自己做了个python应用,因为依赖相对复杂,所以使用WSL(-ubuntu)的方式部署。

在配置服务随Windows系统自动化启动的时候遇到问题。

因为需要切换环境,所以在使用以下语句,执行启动脚本时:

1wsl -d ubuntu-18.04 -u chen "/etc/init.d/start-script"

最直接的想法,使用start-script脚本内容如下:

1#! /bin/bash
2conda activate env_name
3cd /mnt/e/path/to/script
4python test.py

但是,在使用conda activate命令切换环境,会因为conda环境没有初始化的问题,无法进入相应环境。

 1CommandNotFoundError: Your shell has not been properly configured to use 'conda activate'.
 2To initialize your shell, run
 3
 4    $ conda init <SHELL_NAME>
 5
 6Currently supported shells are:
 7  - bash
 8  - fish
 9  - tcsh
10  - xonsh
11  - zsh
12  - powershell
13
14See 'conda init --help' for more information and options.
15
16IMPORTANT: You may need to close and restart your shell after running 'conda init'.

这时候使用下面语句切换环境即可:

1source /home/user_name/miniconda3/bin/activate env_name
2# 或者
3source /home/user_name/anaconda3/bin/activate env_name

修改后的启动脚本为:

1#! /bin/bash
2source /home/user_name/miniconda3/bin/activate env_name
3cd /mnt/e/path/to/script
4python test.py

参考

calling-conda-source-activate-from-bash-script

Last edited : 2022-04-26 19:01