win10 wsl pycharm docker git环境构建 - peter-xbs/CommonCodes GitHub Wiki

开发环境构建

WSL环境配置

  • 参考资源

  • windows terminal安装

    • microsoft store ==> windows terminal 点击安装,将会搜索框中生成终端的可执行命令,点击power shell
  • wsl安装核心点

    • BIOS启动,开启Virtul Machine相关配置

    • 运行WSL安装系列命令

      dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

    运行systeminfo后HyperV信息需显示如下即可 Hyper-V 要求: 已检测到虚拟机监控程序。将不显示 Hyper-V 所需的功能。 或者 图片 均可,否则需进行BIOS相关设置

    • wsl install 选择适宜Linux发行版本进行安装

      wsl --install -d Ubuntu-20.04

    • 通过windows terminal启动Linux环境

    • 更新apt相关功能

    sudo apt-get update
    sudo apt-get upgrade
    sudo reboot
    

minconda3安装

  • 安装
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
sudo chmod 777 Miniconda3-latest-Linux-x86_64.sh #懒人操作
./Miniconda3-latest-Linux-x86_64.sh

然后编辑bashrc,调整conda环境变量

python环境配置

conda create -n py39_dev python=3.9
conda activate py39_dev 
#conda deactivate 用以退出环境

pycharm配置

  • 建议使用专业版,和WSL有更好的对接(可在taobao上进行账号购买)
  • pycharm打开项目时,interpreter设置时,专业版有WSL选项,WSL中新建的环境比如前述py39_dev将可查询并被选中作为解释器
  • pycharm终端,输入bash运行,则可转换为Linux环境,和Mac终端比较类似

git配置

  • 注意,此处产生公钥时,-t 为rsa时,无法使用,而是使用如下方式产生
ssh-keygen -t ed25519 -C "[email protected]"

将产生的对应公钥id_ed25519.pub打印并写入github相应位置,即可生效

  • 注意,还有一种情况,即再/mnt/d/GitHubPorjects目录下直接clone项目会遇到下图的报错

    fatal: could not set 'core.filemode' to 'false'
    

此时,我们可采用如下方案来解决本问题:

wsl 中挂载的 windows 10 ntfs 的文件目录,不支持 Linux 的 chmod 等权限设置命令造成的,解决办法

创建一个  /etc/wsl.conf 文件,文件内容如下:

[automount]
options = "metadata"

docker配置

  • 进入Ubuntu,执行
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

或者使用国内镜像

curl -sSL https://get.daocloud.io/docker | sh

执行快速安装即可

vs code 配置

  • 安装 vs code windows版本
  • extensions 安装wsl;安装成功后重启vs code,打开项目,按照wsl项目路径打开,将可自动识别WSL路径,注意,此时vs code连接方式相当于 客户端-服务器模式,客户端即windows,服务器则是wsl子系统
  • extensions安装 Python extension for Visual Studio Code,左侧栏出现run & debug功能图标,此处则可以以类似于Pycharm方式执行debug
  • ==TRICK:== 然后点ctrl+shift+p搜索python:select 即可选择相应的wsl python interpreter,包含对应的venv
  • Optional: 安装SSH extension,则vs code左侧会出现一个图标,点击图标,可以选择远程连接方式,目前包括WSL和Remote,通过前者可以直接打开wsl子系统内的项目,通过后者可以真正连接远端server
  • ==补充trick1==: vs code支持函数跳转,windows下,ctrl+function则可直接跳转至function, alt + < 则可跳回之前位置

WEB接口尝试开发

尝试安装ab框架

ab框架git地址: https://github.com/aliyun/algorithm-base

ab框架安装文档: https://github.com/aliyun/algorithm-base/blob/master/docs/cn/install.md

  • 几个安装意外

    • 1)当pip install -e .时,可能会发行个别package 显示Yanked,此时再pypi寻找相近的版本在setup.cfg中执行替换

    • 2)这个非常核心,WSL中默认缺失gcc,导致多次编译失败,运行下述命令得以解决

      sudo apt install gcc
      

尝试创建项目

新版dockerfile

FROM peterssun/web_base:3.2

WORKDIR /root/app

# 安装算法依赖包
COPY ./setup/base.txt setup/base.txt
RUN pip3 install  --no-cache-dir -r setup/base.txt

COPY ./setup/requirements.txt setup/requirements.txt
RUN pip3 install  --no-cache-dir -r setup/requirements.txt
COPY ./setup/ab-3.3.0.0-py3-none-any.whl setup/ab-3.3.0.0-py3-none-any.whl
RUN pip3 install setup/ab-3.3.0.0-py3-none-any.whl
# 源代码等
COPY ./ ./

# 必须创建日志目录
RUN mkdir -p logs

# 加密python代码
RUN bash ./encrypt.sh

# 加密数据文件
RUN bash ./crypto.sh
# 加密结束后,删除加密密钥
RUN rm -rf ./crypto.sh

# 启动服务。本地调试时,可以覆盖启动命令
ENTRYPOINT ["/root/launch.sh"]
CMD ["prod"]