广告
返回顶部
首页 > 资讯 > 后端开发 > Python >VScode中不同目录间python库函数的调用
  • 509
分享到

VScode中不同目录间python库函数的调用

Vscodepython函数调用VScode不同目录python调用 2023-03-10 11:03:06 509人浏览 独家记忆

Python 官方文档:入门教程 => 点击学习

摘要

目录问题描述理论分析解决方案参考文献问题描述 vscode中跨目录的模块调用远不如PyCharm中的来的简单,在pycharm中即使是不同库文件夹中子函数也可以进行互相调用。而在VS

问题描述

vscode中跨目录的模块调用远不如PyCharm中的来的简单,在pycharm中即使是不同库文件夹中子函数也可以进行互相调用。而在VScode中则需要我们手动向其中添加依赖路径。如下相同的文件结构,在pycharm中可以简单的在model_arc_pesudo中导入model中的模型,而在VScode中则会提示ModuleNotFoundError: No module named 'model',因此我们需要手动导入路径。

在这里插入图片描述

理论分析

首先我们从依赖路径角度来看看二者的异同,使用如下代码输出依赖路径:

import sys
print("import path!!!!!!")
print(sys.path)

pycharm中输出的依赖路径为:
[xxx, ..., 'E:\\python_program\\infant_cognitive',..., xxx]
其中infant_cognitive项目所在整个文件夹的名字,而vscode中输出的依赖路径则不包括这一项,也就无法自动的找到其子文件夹中model,从而无法通过语句from model.PSDCNCluster_2 import PSDCN

解决方案

既然sys.path未包含要导入的文件夹,那么直接导入就行,通过在代码最前方添加如下代码实现:

import sys
target_path="./"
sys.path.append(target_path)
print(sys.path)

此处有一个隐含的知识点,在vscode中默认的根路径是项目路径1,而非当前py文件的路径,所以直接使用"./"就可通过相对路径来导入infant_cognitive下所有的文件夹。如果需要导入其他文件夹下的模块,只需要对target_path进行修改即可,倘若对于相对路径的写法以及os, sys模块的使用不够熟练,建议是直接使用绝对路径,不易出错。

还有一点值得注意的是,由于此处使用的导入方式是module.function(from model.PSDCNCluster_2 import PSDCN),那么实际上我们需要导入的是module的上一级路径,也就是infant_cognitive,而非导入infant_cognitive\model,这样的话仍然会报错。如果是使用module.function形式导入的话,需要注意要导入的是module的上一级文件夹,不再是sys.append("module")。或者是使用target_path="./model"直接搭配from PSDCNCluster_2 import PSDCN,具体可以去查阅Python中的import机制2。

参考文献

vscode的相对路径 ↩︎

关于Python的import机制原理 ↩︎

到此这篇关于VScode中不同目录间python库函数的调用的文章就介绍到这了,更多相关VScode不同目录python函数调用内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: VScode中不同目录间python库函数的调用

本文链接: https://www.lsjlt.com/news/199232.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作