windows11使用pycharm连接wsl2开发基于poetry的python项目

windows11使用pycharm连接wsl2开发基于poetry的python项目

背景:公司开发的python项目用到了某个只提供了Linux版本的包,遂研究了一番如何在windows环境下进行开发。

  1. windows安装 wsl2
  2. 进入到wsl2中,安装对应的python版本,建议使用pyenv,下面以3.10.14版本为例子。 pyenv安装方法可以参考这里
  • 安装python之前确认安装好下面的库,不然安装完会缺失部分python基础库:

    sudo apt-get update
    sudo apt-get install -y make build-essential libssl-dev zlib1g-dev
    libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
    libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev

    如果不幸已经安装了缺少库的python,可以根据下面的命令重新安装

    pyenv uninstall -f 3.10.14

    再次安装正确的版本,记得先运行上面的类库安装

    pyenv install 3.10.14

  1. 安装Pycharm Professional (只有专业版自带wsl连接),下面提供两种方式运行项目。
  • Pycharm提供了远程开发模式,ide界面跑在本地,代码运行在远程,可以直接连接到本机的wsl,目前是bate功能,启动起来比较麻烦,好处是可以直接配置wsl上面的poetry。

    ps. 经过实践这种方式很耗资源,能直接把内存跑炸了 😃


  • Pycharm还是跑在本地,指定解释器为wsl里面的python解释器,但是pycharm没有提供使用wsl里面的poetry的选择,需要一点手动操作,方法来自

    进入项目所在目录,设置本地目录要用到的python版本

    pyenv local 3.10.14

    安装项目依赖

    poetry install

    查看目录解释器所在位置,设置pycharm项目解释器时要用到

    输出例子:/home/tiger_linux/.cache/pypoetry/virtualenvs/serviceme-JDx4R2Ou-py3.10

    poetry env info -p

    如果项目已经创建了一个基于旧版本 Python 的虚拟环境,建议删除旧环境并创建一个新的:

    列出所有虚拟环境

    poetry env list

    删除指定的虚拟环境(替换 <env_name> 为实际环境名称)

    poetry env remove <env_name>
    poetry env use $(pyenv which python)
    poetry install

用pycharm正常打开项目,进入项目设置:

点进去之后,选择【Virtualenv 环境】并根据上面提到的【poetry env info -p】命令获取到的解释器目录找到解释器,点击【确定】,设置完就大功告成。

ps. 上述设置完毕正常来说已经可以正常调试启动项目,可能会有部分包的问题,逐个排查即可, good luck 😃