WIN10 linux子系统(Windows subsystem for linux,简称WSL)下odoo开发调试环境搭建

前言

笔者是一个喜欢追求尽量少的工具实现尽可能多功能的开发者,在刚开始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"映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上原生运行。

方案优点

  1. 速度:linux下python运行速度优于Windows
  2. 性能:相比虚拟机,WSL与主机共享硬件资源,几乎没有性能损耗
  3. 方便:因为文件系统共享,在Win下的IDE或者编辑器里面修改好文件之后,不需要拷贝到linux中,xml文件修改直接升级模块,py文件修改直接在Pycharm中重启odoo即可;节约同步文件的操作时间,也免去忘记同步造成文件不一致造成的调试不便。


    运行在WSL子系统中的pgsql与python

软件环境

  • WIN10专业版
  • Pycharm专业版

建议都安装最新版本

WSL安装

安装前的准备

  1. 打开系统的设置应用,进入设置>更新和安全>开发者选项,选择开发人员模式

    image.png

  2. 打开控制面板的启用或关闭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

image.png

然后打开Windows的控制台窗口,输入ssh linux用户名@localhost -p2222
出现提示授权及输入密码即代表设置成功
image.png

Postgresql数据库安装与配置

这一部分参考其它odoo安装与部署的文章即可,此处不再赘述。

Pycharm远程调试配置

映射odoo目录

Linux子系统与WIN10共享文件系统,WIN10的文件可在子系统的/mnt目录下访问,可通过la /mnt查看一下目录结构

  1. 在WIN10任意目录准备好Odoo代码,如D:\develop\odoo12\community

    image.png

  2. 进入linux用户目录创建软链接

cd ~
ln -s /mnt/d/develop/odoo12/community/ odoo12

此时可直接在odoo12目录下使用odoo目录内的文件


image.png

尝试运行odoo python3 odoo-bin

image.png

可以看到odoo已经能够在linux环境下运行起来,下一步安装依赖的python库之后即可正常运行

安装odoo依赖的python库

这一部分参考其它odoo安装文档即可

配置远程python环境

打开Pycharm的设置:File>Settings>Project: project name>Project Interpreter

image.png

打开Add Python Interpreter窗口
image.png

在左侧选择SSH Interpreter
image.png

此处能看到在最新的Pycharm版本中官方已经支持WSL环境了,不过测试下来在这个配置下开启了odoo的多线程之后关闭odoo进程可能会有进程清除不干净的情况,所以暂时还使用SSH Interpreter

输入用户名密码后继续下一步直到打开下图窗口
在Interpreter设置中选择到linux子系统的Python3安装目录/usr/bin/python3.6

image.png

在下方的Running code on the remote server下的映射目录中设置Remote Path为子系统下上文创建好的软链接代码目录中
并取消勾选Automatically upload project files to the server选项(因为子系统与Windows共用文件,所以不需要自动同步到inux中)


image.png

设置完毕后点击Finish等待设置更新完毕


image.png

调试配置

点击右上角启动选项下的Edit Configurations打开启动配置设置

image.png

在设置窗口中作如下设置并保存

  1. 填写合适的启动选项名称
  2. 在Script Path中选择odoo-bin启动文件
  3. 在Parameters中设置odoo的启动参数,通常为-c 配置文件路径
    4。 在Python Interpreter选项中选择刚刚配置好的Python环境


    image.png

    点击右上角的运行或调试图标,控制台出现如图所示提示即代表设置成功


    运行成功

大功告成!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270