idea中Run/Debug Python项目报错 Argument for @NotNull parameter ‘module‘ of ...
idea中Run/Debug Python项目报错 Argument for @NotNull parameter 'module' of ...
idea中运行Python项目main.py时报错:
Error running 'main': Argument for @NotNull parameter 'module' of com/intellij/openapi/roots/ModuleRootManager.getInstance must not be null

检查Run/Debug配置:





排查方案如下:
1)File -> Project Structure-> Project,检查 SDK 参数是否指定了 Python SDK,如果是 <No SDK> 则需要指定,如果下拉选项没有Python SDK,则 Add SDK创建一个(创建时 Virtualenv Environment 时 Base intercerpreter 指定 Python.exe 文件路径);
2)File -> Project Structure-> Modules,检查 Modules 是否为空:

如果为空(可能是因为项目根目录下的 idea 项目文件 "项目名.iml" 误删或丢失了 ),则点“+”操作:Import Modules 或 New Modules。
我之前出现该错误的时候,就是不知是什么原因导致该Modules为空了,所以我尝试重新创建 Modules:
New Modules :Create module from existing sources,选择对应 Python 项目的根目录。
创建以后Modules配置如下:


3)前面确认 Module 有了以后,再回到三角形的运行按钮的左侧的 Run/Debug Configurations 列表中,Edit Configurations,打开编辑界面:

a)检查: Configuration -> Script path:是否指定了正确的运行的python脚本,我指定的是我项目下的 main.py 脚本;
b)检查:Configuration -> Python Interpretor 参数,有两个选项,之前一直选择的是第二个选项 Use specified interpretor

1. Use SDK of Module:显示前面创建的Python项目
2. Use specified interpretor:pythoh.exe执行文件路径
之前一直指定的是 Python 3.8(python.exe执行文件路径),但此时运行时还是会报同样的错误。
感觉我创建Module后,这个配置界面貌似有点不同,第一个选项之前有问题的时候好像是空的。
此时,尝试修改配置,切换成第一个选项 Use SDK of Module(对应我前面创建的项目):

然后 Applay & OK 确认后,再点击三角形RUN按钮,结果问题解决了,RUN 成功了,不再报错了。
接下来我再尝试,改成回第二个选项,Run/Debug Configurations 列表中,Edit Configurations,打开编辑界面,将 Configuration -> Python Interpretor 参数改回第二个选项 Use specified interpretor:

然后我再RUN/Debug ,也正常了。
我本次的问题已经得到解决。
如果实在不行的话,可以考虑重新在idea中创建python项目的流程走一遍:
idea中创建python项目
一、创建Python项目的步骤
1. 打开idea,Create New Project。
2. 在New Project窗口中选择Python。
3. 在Python窗口中填写项目名称和项目路径。
4. 选择Python SDK版本和虚拟环境路径,如果没有安装Python SDK,则需要先安装Python SDK。
5. 点击Create按钮,创建Python项目。
二、Python SDK的安装方法
在创建Python项目之前,需要安装Python SDK。Idea支持多个版本的Python SDK,可以根据自己的需要选择不同版本的Python SDK。创建 Python SDK 步骤如下:
1. 下载Python SDK安装包。
2. 安装Python SDK,安装过程中需要注意选择Python SDK的安装路径和添加Python到环境变量中。
3. 在Idea中添加Python SDK,打开Idea的Settings窗口,在Project Interpreter中选择Add New,然后选择已经安装的Python SDK。
三、虚拟环境的创建方法
虚拟环境是Python开发中非常重要的一个概念,可以用来隔离不同项目的依赖关系,避免不同项目之间的依赖冲突。下面介绍虚拟环境的创建方法:
1. 打开Idea,选择Create New Project。
2. 在New Project窗口中选择Python。
3. 在Python窗口中填写项目名称和项目路径。
4. 选择Python SDK版本和虚拟环境路径。
5. 点击Create按钮,创建Python项目。
6. 在Idea中打开Terminal窗口,输入以下命令创建虚拟环境:
python -m venv venv
7. 激活虚拟环境:
source venv/bin/activate
四、创建Python文件的方法
1. 在idea中选择File -> New -> Python File。
2. 在New Python File窗口中填写文件名和文件路径后确认完成文件的创建。
五、idea中运行Python:
方法1:Run -> Run 'filename'
方法2:终端 Terminal 中输入命令运行:python filename.py
相关文章:
idea中Run/Debug Python项目报错 Argument for @NotNull parameter ‘module‘ of ...
idea中Run/Debug Python项目报错 Argument for NotNull parameter module of ... idea中运行Python项目main.py时报错: Error running main: Argument for NotNull parameter module of com/intellij/openapi/roots/ModuleRootManager.getInstance must not be nu…...
计算机网络第3章-TCP协议(2)
TCP拥塞控制 TCP拥塞控制的三种方式: 慢启动、拥塞避免、快速恢复 慢启动 当一条TCP连接开始时,cwnd的值是一个很小的MSS值,这使得初始发送速率大约为MSS/RTT。 在慢启动状态,cwnd的值以1个MSS开始并且每当传输的报文段首次被…...
SQL注入——二次注入漏洞
文章目录 SQL注入——二次注入漏洞1. 二次注入原理2. 二次注入需要具备的两个条件3. 二次注入实例4. 总结 SQL注入——二次注入漏洞 1. 二次注入原理 在第一次插入恶意数据的时候,只是对其中的特殊字符进行了转义,在写入数据库的时候还是原来的字符&am…...
【c++|opencv】二、灰度变换和空间滤波---1.灰度变换、对数变换、伽马变换
every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 灰度变换、对数变换、伽马变换 1. 灰度变换 #include <iostream> #include <opencv2/opencv.hpp>using namespace std; using namespace c…...
【vue3】子传父-事件总线-mitt(子组件派发事件,父组件接收事件和传递的参数)
安装库:cnpm install mitt 封装 eventbus.ts: src->utils->eventbus.ts //eventbus.tsimport mitt from mittconst emitter mitt()export default emitter使用 B2.vue: //B2.vue <template><div class"aa">…...
【杂记】java 大集合进行拆分
日常中需要对一个大的集合进行拆分成多个小集合,其主要思路为: 设置需要拆分多少个小集合 A大集合里面有多少条数据 B计算出每个集合里面有多个条数据 CB/A计算出看是否存在余数 DB%A采用集合(List.subList())的方法对大集合进行拆分,循环A变进行集合拆…...
select...for update 锁表了?
在MySQL中,事务A中使用select...for update where id1锁住了,某一条数据,事务还没提交,此时,事务B中去用select ... where id1查询那条数据,会阻塞等待吗? select...for update在MySQL中&#…...
使用ControlNet生成视频(Pose2Pose)
目录 ControlNet 介绍 ControlNet 14种模型分别是用来做什么的 ControlNet 运行环境搭建 用到的相关模型地址 ControlNet 介绍 ControlNet 是一种用于控制扩散模型的神经网络结构,可以通过添加额外的条件来实现对图像生成的控制。它通过将神经网络块的权重复制到…...
基于Docker使用Minikube
1. 查看并操控Minikube状态信息 Minikube相当于docker中的一个container,可以在Docker Desktop中看到并操控Minikube container的相关状态: 通过以下命令查看当前docker中的container: % docker ps CONTAINER ID IMAGE …...
Stable Diffusion系列(一):古早显卡上最新版 WebUI 安装及简单操作
文章目录 Stable Diffusion安装AnimateDiff插件适配sdxl模型适配 Stable Diffusion使用插件安装界面设置基础文生图加入lora的文生图 Stable Diffusion安装 我的情况比较特殊,显卡版本太老,最高也就支持cuda10.2,因此只能安装pytorch1.12.1&…...
ruoyi框架前端vue部署生产环境教程
前端有子目录,后端有项目名称,请看第3种 第1种 前端nginx没有子目录,后端也没有访问的项目名。这种是最简单的。 vue.config.js 只需要修改target中的IP和端口,就是后端访问的IP和端口 # vue.config.js devServer: {host: 0.…...
leetcode第369周赛
2917. 找出数组中的 K-or 值 给你一个下标从 0 开始的整数数组 nums 和一个整数 k 。 nums 中的 K-or 是一个满足以下条件的非负整数: 只有在 nums 中,至少存在 k 个元素的第 i 位值为 1 ,那么 K-or 中的第 i 位的值才是 1 。 返回 nums …...
如何在维格云中自动新增一行或多行数据?
简介 在日常使用维格云中,通常会出现一张表中有数据发生变化时,需要另一张表同时新增一些数据,比如: 项目管理中,每新增一个项目,都要在任务表中产生若干个固定的任务;或一个任务要自动生成若干子任务当一笔订单状态变为成交后,可能要在客户成功表中新增一行记录;帮…...
Three.js 开发引擎的特点
Three.js 是一个流行的开源 3D 游戏和图形引擎,用于在 Web 浏览器中创建高质量的三维图形和互动内容。以下是 Three.js 的主要特点和适用场合,希望对大家有所帮助。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作…...
k8s声明式资源管理方式
Kubernetes 支持 YAML 和 JSON 格式管理资源对象 JSON 格式:主要用于 api 接口之间消息的传递 YAML 格式:用于配置和管理,YAML 是一种简洁的非标记性语言,内容格式人性化,较易读 YAML 语法格式: ●大小写…...
unity性能优化__Statistic状态分析
在Unity的Game视图右上角,我们会看到有Stats选项,点击会出现这样的信息 我使用的Unity版本是2019.4.16 一、Audio,顾名思义是声音信息 1:Level:-74.8dB 声音的相对强度或音量。通常,音量级别以分贝(dB&a…...
Linux Spug自动化运维平台公网远程访问
文章目录 前言1. Docker安装Spug2 . 本地访问测试3. Linux 安装cpolar4. 配置Spug公网访问地址5. 公网远程访问Spug管理界面6. 固定Spug公网地址 前言 Spug 面向中小型企业设计的轻量级无 Agent 的自动化运维平台,整合了主机管理、主机批量执行、主机在线终端、文件…...
3DES算法
简介 本文基于.NET的C#实现3DES算法的加密和解密过程。可以用在加密软件、加密狗等。 代码下载链接:https://download.csdn.net/download/C_gyl/88487942 使用 第一种方法 加密 KeySize:128(16字节),192(24字节&#x…...
手机电池寿命检测
安卓 - 应用商店下载“安兔兔” -accubattery 下载地址 accubattery汉化版下载-Accubattery pro中文免费版(电池检测)下载 v1.5.11 安卓专业版-IT猫扑网...
Vue项目搭建及使用vue-cli创建项目、创建登录页面、与后台进行交互,以及安装和使用axios、qs和vue-axios
目录 1. 搭建项目 1.1 使用vue-cli创建项目 1.2 通过npm安装element-ui 1.3 导入组件 2 创建登录页面 2.1 创建登录组件 2.2 引入css(css.txt) 2.3 配置路由 2.5 运行效果 3. 后台交互 3.1 引入axios 3.2 axios/qs/vue-axios安装与使用 3.2…...
网络编程(Modbus进阶)
思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例
文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...
【堆垛策略】设计方法
堆垛策略的设计是积木堆叠系统的核心,直接影响堆叠的稳定性、效率和容错能力。以下是分层次的堆垛策略设计方法,涵盖基础规则、优化算法和容错机制: 1. 基础堆垛规则 (1) 物理稳定性优先 重心原则: 大尺寸/重量积木在下…...
如何配置一个sql server使得其它用户可以通过excel odbc获取数据
要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据,你需要完成以下配置步骤: ✅ 一、在 SQL Server 端配置(服务器设置) 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到:SQL Server 网络配…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
41道Django高频题整理(附答案背诵版)
解释一下 Django 和 Tornado 的关系? Django和Tornado都是Python的web框架,但它们的设计哲学和应用场景有所不同。 Django是一个高级的Python Web框架,鼓励快速开发和干净、实用的设计。它遵循MVC设计,并强调代码复用。Django有…...
