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

 更新时间:2023年03月10日 09:56:57   作者:夜半罟霖  
本文主要介绍了VScode中不同目录间python库函数的调用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

问题描述

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函数调用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python数据分析模块pandas用法详解

    Python数据分析模块pandas用法详解

    这篇文章主要介绍了Python数据分析模块pandas用法,结合实例形式详细分析了Python数据分析模块pandas的功能、常见用法及相关操作注意事项,需要的朋友可以参考下
    2019-09-09
  • python接入使用百度翻译流程

    python接入使用百度翻译流程

    这篇文章主要介绍了利用Python接入百度翻译的实现方法,从而实现中英文互译的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2022-07-07
  • python输入、数据类型转换及运算符方式

    python输入、数据类型转换及运算符方式

    这篇文章主要介绍了python输入、数据类型转换及运算符方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • UI自动化定位常用实现方法代码示例

    UI自动化定位常用实现方法代码示例

    这篇文章主要介绍了UI自动化定位常用实现方法代码示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • Python实现嵌套列表去重方法示例

    Python实现嵌套列表去重方法示例

    人生苦短,早用Python。python可以说2017比较火的一个语言了,下面这篇文章主要给大家介绍了关于利用Python实现嵌套列表去重的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-12-12
  • Python reversed反转序列并生成可迭代对象

    Python reversed反转序列并生成可迭代对象

    这篇文章主要介绍了Python reversed反转序列并生成可迭代对象,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • 使用Python实现将数据写入Excel工作表

    使用Python实现将数据写入Excel工作表

    在数据处理和报告生成等工作中,Excel 表格是一种常见且广泛使用的工具,本文中将介绍如何使用 Python 写入数据到 Excel 表格,并提供更高效和准确的 Excel 表格数据写入方案,需要的可以参考下
    2024-01-01
  • PyQt5简单读取以及显示图片的应用实例

    PyQt5简单读取以及显示图片的应用实例

    我们在进行图像处理时,经常会用到读取图片并显示出来这样的操作,下面这篇文章主要给大家介绍了关于PyQt5简单读取以及显示图片应用的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • Python数据可视化之使用matplotlib绘制简单图表

    Python数据可视化之使用matplotlib绘制简单图表

    这篇文章主要为大家详细介绍了使用matplotlib绘制简单图表的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • aws 通过boto3 python脚本打pach的实现方法

    aws 通过boto3 python脚本打pach的实现方法

    这篇文章主要介绍了aws 通过boto3 python脚本打pach的实现方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05

最新评论