当前位置: 首页 > news >正文

Python+VScode 两个不同文件夹里的py文件相互调用|python的模块调用|绝对导入

第一次用VScode写python遇到了模块无法识别的问题,搞了一整天,

上网查,chatGPT都不行,现在时解决了。

首先项目结构如下,四个文件夹,四个py文件

代码:

def f1fun():print("f1")
def f2fun():print("f2")print("f2 Run:")from d1 import f1
f1.f1fun()from d3.d4 import f4
f4.f4fun()
def f4fun():print("f4")
from d1 import f1
from d2 import f2
from d3.d4 import f4print("main Run:")
f1.f1fun()
f2.f2fun()
f4.f4fun()

现在运行f2 .py

报错:No module named 'd1'

在VScode里不像PyCharm模块不能直接点击运行,要使用终端命令行

确保首先对所有py文件ctrl+c保存,保存了代码才能生效

如上图所示,在VScode里点击TERMINAL,打开终端,输入

python -m d2.f2

成功在f2.py里运行了另外两个不同文件夹内f1.py,f4.py的函数

同时左边的项目结构也发生了变化,勾红的是刚刚运行时自动多出来的文件,至关重要,

而且名字也是有特点的,f1.py对应了f1.cpython-312.pyc,

即xxx.py对应xxx.cpython-312.pyc

关键点

如果你的VScode能生成上面那种的文件,那就不能运行成功

或者生成的不是对应的不如xxx.py对应yyy.cpython-312.pyc,也是不能成功的。

那么ctrl+shift+p,输入pythonsel,选择点击

然后选择好已经安装的Python,从而确保VScode能找到

这样如果还不行,那就试试开始页里有没有python、jupiter的new选项,

这里有一个java的updated选项,因为我点过了,所有没有显示了。

如果有,点击new然后在出现的页面把所有都勾选上。然后回来再运行看看

对于根目录下的main.py则没用那么麻烦可以直接点击运行

有需要进一步了解的可以私信。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • VUE2—defineProperty和VUE3—proxy 详解
  • 仿华为车机功能之--修改Launcher3,实现横向滑动桌面空白处切换壁纸
  • Go 语言版本管理——Goenv
  • 三、建造者模式
  • Kaggle克隆github项目+文件操作+Kaggle常见操作问题解决方案——一文搞定,以openpose姿态估计项目为例
  • Kafka【二】关于消费者组(Consumer Group)、分区(partition)和副本(replica)的理解
  • Disjoint-set data structure--并查集
  • 过滤器 与 拦截器
  • window下kafka3启动多个
  • C++高精度算法--加法
  • STM32外部中断(总结了易出现的BUG)
  • Windows10上Nginx如何通过自签名证书方式发布Https服务(下)
  • pycharm 2024.1下载、安装
  • 【c++】cout打印char * 或者char[]的细节详解
  • Java中的事件驱动架构(EDA)
  • 【Amaple教程】5. 插件
  • 【剑指offer】让抽象问题具体化
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 【跃迁之路】【463天】刻意练习系列222(2018.05.14)
  • 【知识碎片】第三方登录弹窗效果
  • Android 架构优化~MVP 架构改造
  • HTTP请求重发
  • Java IO学习笔记一
  • Java编程基础24——递归练习
  • oldjun 检测网站的经验
  • PhantomJS 安装
  • React中的“虫洞”——Context
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • Selenium实战教程系列(二)---元素定位
  • Vue全家桶实现一个Web App
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 浮现式设计
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 区块链将重新定义世界
  • 如何选择开源的机器学习框架?
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 使用API自动生成工具优化前端工作流
  • 一些css基础学习笔记
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ‌‌雅诗兰黛、‌‌兰蔻等美妆大品牌的营销策略是什么?
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • #多叉树深度遍历_结合深度学习的视频编码方法--帧内预测
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (3)(3.5) 遥测无线电区域条例
  • (void) (_x == _y)的作用
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (十一)图像的罗伯特梯度锐化
  • (学习总结16)C++模版2
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)ABI是什么
  • (转)c++ std::pair 与 std::make
  • (最新)华为 2024 届秋招-硬件技术工程师-单板硬件开发—机试题—(共12套)(每套四十题)
  • .gitignore
  • .Net core 6.0 升8.0
  • .NET 应用架构指导 V2 学习笔记(一) 软件架构的关键原则