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

windows11使用pycharm连接wsl2开发基于poetry的python项目的更多相关文章

  1. Pycharm 连接Linux 远程开发

    Pycharm 连接Linux 远程开发 在Liunx上安装python3.6(Ubuntu16) 下载Python-3.6.4.tgz 解压 tar -xzvf Python-3.6.4.tgz 进 ...

  2. pycharm连接远程python的开发环境

    一.准备工作 1.远程主机配置python的开发环境(pyenv) 2.本地windowsp安装pycharm 二.配置pycharm连接 配置运行环境:

  3. windows下使用pycharm开发基于ansible api的python程序

    Window下python安装ansible,基于ansible api开发python程序 在windows下使用pycharm开发基于ansible api的python程序时,发现ansible ...

  4. 用c++开发基于tcp协议的文件上传功能

    用c++开发基于tcp协议的文件上传功能 2005我正在一家游戏公司做程序员,当时一直在看<Windows网络编程> 这本书,把里面提到的每种IO模型都试了一次,强烈推荐学习网络编程的同学 ...

  5. 如何开发基于Dubbo RPC的分布式服务?

    什么是Dubbo? Dubbo能做什么? 在Crystal框架下,如何开发基于Dubbo RPC的服务? 在Crystal框架下,如何调用Dubbo RPC服务? 相关的文章 什么是Dubbo? Du ...

  6. 《Flask Web开发——基于Python的Web应用开发实践》一字一句上机实践(上)

    目录 前言 第1章 安装 第2章 程序的基本结构 第3章 模板 第4章 Web表单 第5章 数据库 第6章 电子邮件 第7章 大型程序的结构   前言 学习Python也有一个半月时间了,学到现在感觉 ...

  7. spark2.2.1安装、pycharm连接spark配置

    一.单机版本Spark安装 Win10下安装Spark2.2.1 1. 工具准备 JDK 8u161 with NetBeans 8.2: http://www.oracle.com/technetw ...

  8. Pycharm搭建Django开发环境

    Pycharm搭建Django开发环境 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们大家都知道Django是python都一个web框架,因此大家需要自行安装python环境 ...

  9. 程序员之路:python3+PyQt5+pycharm桌面GUI开发(转)

    程序员之路:python3+PyQt5+pycharm桌面GUI开发 http://blog.sina.com.cn/s/blog_989218ad0102wz1k.html 先看效果: 图 1 没错 ...

  10. PyCharm进行远程开发和调试linux服务器

    简介: 或许我也应该迁移到linux环境去开发. 最近写的一些小东西,在wnidows上开发,在windows上调试,都很正常.可是一旦放进linux服务器,就歇菜了. 那么我们有什么办法处理这个wi ...

随机推荐

  1. 记一次pip/pip3安装uwsgi报错

    背景 本来是想着在centos 7.9的主机上面部署一个flask应用,采用的方式是linux+nginx+uwsgi来进行发布,其他的都没有问题,但是在使用pip安装uwsgi时报错了,安装不成功, ...

  2. 无需等待Vue Release发布,就能在项目中体验最新版

    前言 两个月前尤大在Vue 仓库中引入了 pkg.pr.new,有了这个后Vue仓库中的每个commit或者PR都会自动触发一个新的发布,我们就可以在项目中体验最新版本的Vue啦. 关注公众号:[前端 ...

  3. esp8266+MQTT+DHT11(温湿度计) platformio

    esp8266 + MQTT + DHT11(温湿度计) 连线 #include <Arduino.h> #include <ESP8266WiFi.h> #include & ...

  4. 解决 在docker环境中 mosquitto 无法启动 报错等问题

    报错内容 1592979788: Error: Unable to open log file /Users/bigbird/mqttconfig/mosquitto/log/mosquitto.lo ...

  5. AI千恋万花(java调用api实现)附完整项目及注释)重置版)

    感觉博客的第一版质量有点低下了,删了重置一下,希望能给其他人的代码带来一些灵感 前情提要:https://www.cnblogs.com/h4o3/p/18523151 由于是匆忙制作的老婆系统,主界 ...

  6. 一文讲透 FPGA CDC 多bit跨时钟域同步-hand-shanking机制

    一.背景 数据的跨时钟域处理是FPGA开发过程中的常见问题,存在两种情况 慢时钟向快时钟同步:只需在快时钟域打两拍即可.其RTL如下: 打拍同步的原理:大家在初学FPGA时,经常听过FPGA中对信号打 ...

  7. springboot~jpa优雅的处理isDelete的默认值

    如果多个实体类都有 isDelete 字段,并且你希望在插入时为它们统一设置默认值,可以采取以下几种方法来减少代码重复: 1. 使用基类(抽象类) 创建一个基类,其中包含 isDelete 字段和 @ ...

  8. 题解:AT_abc382_c [ABC382C] Kaiten Sushi

    题目传送门 思路 首先看一下数据范围. \(1 \leq N, M \leq 2 \times 10^5\) \(1 \leq A_i, B_i \leq 2 \times 10^5\) 这么大的数据 ...

  9. bat隐藏窗口运行

    在bat脚本开头添加: if "%1" == "h" goto begin mshta vbscript:createobject("wscript. ...

  10. CVE-2023-31436 数组越界漏洞

    CVE-2023-31436 数组越界漏洞 drawio: CVE-2023-31436.drawio ‍ 漏洞分析 在 qfq_change_class 里面如果用户态没有提供 TCA_QFQ_LM ...