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. Web渗透05_SQL注入(TOP 1漏洞)

    SQL注入是所有WEB漏洞中最危险的攻击方式,带来的危害也是最大的.没有之一. SQL注入基础 在编写web应用时,几乎所有的数据都存储在网站的数据库中,你的账号信息,收藏信息,文章信息等等数据都存在 ...

  2. Nuxt.js 应用中的 schema:extend事件钩子详解

    title: Nuxt.js 应用中的 schema:extend事件钩子详解 date: 2024/11/10 updated: 2024/11/10 author: cmdragon excerp ...

  3. PostgreSQL模拟Oracle dba_objects

    PostgreSQL模拟Oracle dba_objects查询出schema下所有的用户自定义对象 创建测试数据 psql -U postgres create user test password ...

  4. RAG三件套运行的新选择 - GPUStack

    GPUStack 是一个开源的大模型即服务平台,可以高效整合并利用 Nvidia.Apple Metal.华为昇腾和摩尔线程等各种异构的 GPU/NPU 资源,提供本地私有部署大模型解决方案. GPU ...

  5. 3.使用kubeadm方式搭建K8S集群

    使用kubeadm方式搭建K8S集群 kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具. 这个工具能通过两条指令完成一个kubernetes集群的部署: # 创建一个 Ma ...

  6. Edge(Chrome)浏览器插件WordSaver的演示,可以查英语生词并记录生词及所在句子,导出为anki格式

    Edge(Chrome)浏览器插件WordSaver的演示,可以查英语生词并记录生词及所在句子,导出为anki格式 Bilibili哔哩哔哩视频

  7. dp题单vjudge 8.17

    HDU-1024 Max Sum Plus Plus https://acm.hdu.edu.cn/showproblem.php?pid=1024 可以想到用dp过,但是无论时间和空间都不够,然后就 ...

  8. Solr的学习使用之(七)Solr高级查询facet、facet.pivot简介 - OnTheRoad_Lee

    http://martin3000.iteye.com/blog/1330106 1 .什么是Faceted Search Facet['fæsɪt]很难翻译,只能靠例子来理解了.Solr作者Yoni ...

  9. Kubernetes集群巡检内容

    1.概述 Kubernetes 集群巡检是一种监测和评估底层系统运行状况的重要手段,旨在快速发现系统中存在的潜在风险并提供修复建议.通过对 Kubernetes(K8s)集群进行定期巡检,可以有效保障 ...

  10. Go 内存管理

    操作系统内存管理 操作系统管理内存的存储单元是页(page),在 linux 中一般是 4KB.而且,操作系统还会使用 虚拟内存 来管理内存,在用户程序中,我们看到的内存是不是真实的内存,而是虚拟内存 ...