图源:
基础环境:
如标题所言,开发环境需要Win10、VSCode、WSL:
-
如果没有Win10,那可以洗洗睡了。
-
如果没有VSCode,可以阅读。
-
如果没有WSL,可以阅读。
此外需要说明的是,我之前安装的WSL是Debian,优点是占的空间小,但我发现缺少很多工具,而且软件源中的软件也很少,安装Python不是很方便,所以我后重新安装了Ubuntu,下面的内容都是在WSL Ubuntu中操作的。
使用VSCode连接WSL
先确保vscode
已经安装了Remote-WSL
扩展:
如果没有就安装。
然后在WSL中定位到工程目录并使用code
命令尝试使用vscode
打开工程:
icexmoon@icexmoon-book:/mnt/d$ cd workspace/python/
icexmoon@icexmoon-book:/mnt/d/workspace/python$ code file-remark/
ERROR: Failed to download the VS Code server. 'wget' not installed.
Please install wget:
Debian/Ubuntu: sudo apt-get install wget
我这里遇到报错,提示需要使用wget
下载VS Code server
这个必须组件,那就先安装wget
:
icexmoon@icexmoon-book:/mnt/d/workspace/python$ sudo apt-get install wget
[sudo] password for icexmoon:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
ca-certificates libpcre2-8-0 libpsl5 openssl publicsuffix
The following NEW packages will be installed:
...省略
Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.
再次尝试使用vscode
打开WSL上的工程:
icexmoon@icexmoon-book:/mnt/d/workspace/python$ code file-remark/
Updating VS Code Server to version 7f6ab5485bbc008386c4386d08766667e155244e
Removing previous installation...
Installing VS Code Server for x64 (7f6ab5485bbc008386c4386d08766667e155244e)
Downloading: 100%
Unpacking: 100%
Unpacked 1828 files and folders to /home/icexmoon/.vscode-server/bin/7f6ab5485bbc008386c4386d08766667e155244e.
这次一切正常:
可以看到标题是xxx [WSL:Debian]
。
在WSL中准备Python环境
确认WSL上的Python环境:
icexmoon@icexmoon-book:~/workspace/python$ python3 --version
Python 3.8.10
更新Python版本:
这使用第三方软件源PPA进行安装最新版本Python,也可以自行编译或者通过其它途径安装。
-
安装PPA软件源:
icexmoon@icexmoon-book:~/workspace/python/file-remark$ sudo apt install software-properties-common
Reading package lists... Done
Building dependency tree
Reading state information... Done
...省略
icexmoon@icexmoon-book:~/workspace/python/file-remark$ sudo add-apt-repository ppa:deadsnakes/ppa
This PPA contains more recent Python versions packaged for Ubuntu.
...省略
icexmoon@icexmoon-book:~/workspace/python/file-remark$ sudo apt-get update
Hit:1 http://ppa.launchpad.net/deadsnakes/ppa/ubuntu focal InRelease
Hit:2 http://archive.ubuntu.com/ubuntu focal InRelease
Hit:3 http://security.ubuntu.com/ubuntu focal-security InRelease
Hit:4 http://archive.ubuntu.com/ubuntu focal-updates InRelease
Get:5 http://archive.ubuntu.com/ubuntu focal-backports InRelease [101 kB]
Fetched 101 kB in 3s (32.9 kB/s)
Reading package lists... Done
-
从PPA软件源安装Python:
icexmoon@icexmoon-book:~/workspace/python/file-remark$ sudo apt install python3.9-full
Reading package lists... Done
Building dependency tree
Reading state information... Done
...省略
icexmoon@icexmoon-book:~/workspace/python/file-remark$ python3 --version
Python 3.8.10
-
修改默认的
python
命令指向python3.9
:
icexmoon@icexmoon-book:~/workspace/python/file-remark$ ll /usr/bin/python*
lrwxrwxrwx 1 root root 16 Sep 29 14:39 /usr/bin/python -> /usr/bin/python3*
lrwxrwxrwx 1 root root 9 Mar 13 2020 /usr/bin/python3 -> python3.8*
-rwxr-xr-x 1 root root 5490352 Jun 2 18:49 /usr/bin/python3.8*
-rwxr-xr-x 1 root root 5405872 Sep 10 07:20 /usr/bin/python3.9*
icexmoon@icexmoon-book:~/workspace/python/file-remark$ sudo rm -f /usr/bin/python3
icexmoon@icexmoon-book:~/workspace/python/file-remark$ sudo ln -s /usr/bin/python3.9 /usr/bin/python3
icexmoon@icexmoon-book:~/workspace/python/file-remark$ python3 --version
Python 3.9.7
如果没有pip
就安装:
icexmoon@icexmoon-book:~/workspace/python$ pip
Command 'pip' not found, but can be installed with:
sudo apt install python3-pip
icexmoon@icexmoon-book:~/workspace/python$ sudo apt install python3-pip
Reading package lists... Done
Building dependency tree
Reading state information... Done
...省略
icexmoon@icexmoon-book:~/workspace/python$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
如果安装
pip
时出现错误,提示缺少依赖之类的可以尝试使用sudo apt update;sudo apt upgrade
更新后再尝试安装。
安装python的虚拟环境venv
(可选):
icexmoon@icexmoon-book:~/workspace/python$ sudo apt install python3-venv
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
...省略
检查VSCode的插件Python
,该插件会出现一个在WSL:ubuntu中安装
的选项,进行安装,安装完毕后重新加载插件。
然后就可以使用VSCode在WSL中远程调试Python程序了。
总结
折腾了两个多小时,遇到了各种坑,总算是搞定了。在这里总结一下使用这种方式而非直接在Linux上开发的优缺点。
优点:
-
可以使用Windows上熟悉的工具,比如VSCode以及SQLite Expert等。虽然说VSCode也有Linux版本,但是应该也还是有一些差别的,如果使用WSL就完全不存在类似的工具不顺手的问题,减少了不必要的时间花费。
-
开发环境可以直接使用Windows下的工程目录,减少了文件拷贝和额外搭建开发环境的时间。
缺点:
-
WSL同样需要考虑各种Linux发行版的差异带来的软件安装的各种困难和问题。
-
个别Linux发行版的WSL(如Debian)过于精简,以至于缺少一些必要的工具。
总的来说使用这样的方式开发或测试应用于Linux下的Python程序都是一个不错的选择。
文章评论