美文网首页Linux学习
WIN10 linux子系统(Windows subsystem

WIN10 linux子系统(Windows subsystem

作者: ShangHai_Fei | 来源:发表于2019-05-30 22:02 被阅读265次

    前言

    笔者是一个喜欢追求尽量少的工具实现尽可能多功能的开发者,在刚开始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

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


      运行成功

    大功告成!!!

    相关文章

      网友评论

        本文标题:WIN10 linux子系统(Windows subsystem

        本文链接:https://www.haomeiwen.com/subject/oriyiqtx.html