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
-
尝试创建项目
-
在打包docker镜像时,有几个重要步骤:
- 1)安装框架,使用conda创建虚拟环境后,参考https://github.com/peter-xbs/algorithm-base/blob/master/docs/cn/install.md将框架环境搭建好
- 1) 使用abt工具创建项目,参考https://github.com/peter-xbs/algorithm-base/blob/master/docs/cn/new-project.md
- 1)基础底层镜像,原位置在aliyun内部medhub,正在转移至dockerhub,peterssun/web_base:0.3.2版;或者使用牛哥【https://gov-ioc.oss-cn-hangzhou.aliyuncs.com/ab-base-py37.tar.gz】】提供连接地址下载后 docker load
- 2)ab package,原本在setup/base.txt中通过git方式安装,现通过将ab git项目转为whl文件,修改Dockerfile安装方式来完成改善
- 现已成功构建
新版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"]