前言
笔者是一个喜欢追求尽量少的工具实现尽可能多功能的开发者,在刚开始odoo开发的时候折腾过好几套开发环境,如VSCode,Visual Studio,Pycharm等;最终选择了WSL+Pycharm专业版这个完美的组合;其优势在于能同时保留Windows的易用性与Linux的开发友好度,在同时使用一些Windows平台软件办公的同时也能在Linux环境下开发调试,达到媲美甚至超越mac系统的开发体验
WSL简介:Windows Subsystem for Linux(简称WSL)是一个为在Windows 10上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,目标是使纯正的Ubuntu 14.04 "Trusty Tahr"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。
方案优点
- 速度:linux下python运行速度优于Windows
- 性能:相比虚拟机,WSL与主机共享硬件资源,几乎没有性能损耗
-
方便:因为文件系统共享,在Win下的IDE或者编辑器里面修改好文件之后,不需要拷贝到linux中,xml文件修改直接升级模块,py文件修改直接在Pycharm中重启odoo即可;节约同步文件的操作时间,也免去忘记同步造成文件不一致造成的调试不便。
运行在WSL子系统中的pgsql与python
软件环境
- WIN10专业版
- Pycharm专业版
建议都安装最新版本
WSL安装
安装前的准备
-
打开系统的设置应用,进入设置>更新和安全>开发者选项,选择开发人员模式
image.png
-
打开控制面板的启用或关闭Windows功能设置,勾选适用于Linux的Windows子系统
image.png
安装
WSL安装程序内置于WIN10的应用商店中,需要在WIN10系统登录Microsoft帐户;
打开应用商店搜索关键词之一:bash wsl linux,即可搜索到已经上架应用商店的linux子系统,选择一个自己喜欢的进行安装即可。
Ubuntu 18.04 LTS
安装完毕之后开始菜单应用列表会显示出来刚刚安装好的Linux子系统
image.png
环境配置
首次进入子系统会显示如图的提示信息
image.png
系统初始化完成之后提示输入用户信息
image.png
按照提示设置用户名与密码即可进入系统
image.png
更新apt源
进入系统后建议第一个要做的事情就是修改apt与pip源,这样在后面安装软件的时候会节约很多下载时间
输入命令
sudo vi /etc/apt/source.list
清除现有文本并粘贴以下配置信息然后保存配置
deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ xenial-proposed main restricted universe multiverse
deb http://cn.archive.ubuntu.com/ubuntu bionic main multiverse restricted universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-updates main multiverse restricted universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-security main multiverse restricted universe
deb http://cn.archive.ubuntu.com/ubuntu bionic-proposed main multiverse restricted universe
运行sudo apt update
更新配置
注:此处使用的是阿里云的apt源,也可以使用其它国内源
安装pip包管理工具并配置更新源
sudo apt install python3-pip
创建配置文件
cd ~
mkdir .pip
vi .pip/pip.conf
写入以下内容
[global]
index-url = https://pypi.douban.com/simple
trust-host = pypi.doban.com
此处使用豆瓣pip源,也可自行换成其它国内源
SSH安装及端口修改
ubuntu18已经自带ssh server,不需要另外安装
不过由于打开开发人员选项之后,WIN10也会安装ssh并占用22端口,为了避免冲突,将ubuntu的ssh端口修改为其它端口
sudo vi /etc/ssh/sshd_config
将Port参数值修改为2222
并将PasswordAuthentication改为yes
然后打开Windows的控制台窗口,输入ssh linux用户名@localhost -p2222
出现提示授权及输入密码即代表设置成功
image.png
Postgresql数据库安装与配置
略
这一部分参考其它odoo安装与部署的文章即可,此处不再赘述。
Pycharm远程调试配置
映射odoo目录
Linux子系统与WIN10共享文件系统,WIN10的文件可在子系统的/mnt目录下访问,可通过
la /mnt
查看一下目录结构
-
在WIN10任意目录准备好Odoo代码,如D:\develop\odoo12\community
image.png
-
进入linux用户目录创建软链接
cd ~
ln -s /mnt/d/develop/odoo12/community/ odoo12
此时可直接在odoo12目录下使用odoo目录内的文件
image.png
尝试运行odoo python3 odoo-bin
可以看到odoo已经能够在linux环境下运行起来,下一步安装依赖的python库之后即可正常运行
安装odoo依赖的python库
略
这一部分参考其它odoo安装文档即可
配置远程python环境
打开Pycharm的设置:File>Settings>Project: project name>Project Interpreter
打开Add Python Interpreter窗口
image.png
在左侧选择SSH Interpreter
image.png
此处能看到在最新的Pycharm版本中官方已经支持WSL环境了,不过测试下来在这个配置下开启了odoo的多线程之后关闭odoo进程可能会有进程清除不干净的情况,所以暂时还使用SSH Interpreter
输入用户名密码后继续下一步直到打开下图窗口
在Interpreter设置中选择到linux子系统的Python3安装目录/usr/bin/python3.6
在下方的Running code on the remote server下的映射目录中设置Remote Path为子系统下上文创建好的软链接代码目录中
并取消勾选Automatically upload project files to the server选项(因为子系统与Windows共用文件,所以不需要自动同步到inux中)
image.png
设置完毕后点击Finish等待设置更新完毕
image.png
调试配置
点击右上角启动选项下的Edit Configurations打开启动配置设置
在设置窗口中作如下设置并保存
- 填写合适的启动选项名称
- 在Script Path中选择odoo-bin启动文件
-
在Parameters中设置odoo的启动参数,通常为-c 配置文件路径
4。 在Python Interpreter选项中选择刚刚配置好的Python环境
image.png
点击右上角的运行或调试图标,控制台出现如图所示提示即代表设置成功
运行成功
大功告成!!!
网友评论