使用VS code调用自己的代码 (python)

        本人是在写实验代码的时候出现了这个问题, mac os, python 3.9。这个project一开始的内容比较简单,只有一个模型(.py)文件去跑数据,一个(.ipynb)去画图看结果,随着内容的丰富,后面做了很多相关的研究,写了很多别的模型,然后还有很多用来做对比实验的代码,为了便于维护和更新,以及让整个project看起来更加的清晰,我在一段时间以后决定把不同的代码文件放在不同的地方,把模型集中在一起去管理,把实验的代码放在另一个文件夹中,大致的结构如下

project-file
    - models
        - model1.py
        - model2.py
        - model3.py
    - experiment_codes
        - ex1.ipynb
        - ex2.py

        首先是直观的写法, 在ex2.py中输入

from models.model1 import *

这个写法在pycharm中直接使用是没有问题的,但是在vscode中不行,因为vscode并不能读取到project-file中某个文件夹内的文件。报错如下

ModuleNotFoundError: No module named 'models'

所以需要将对应文件夹,在这里也就是models的路径加入到vscode运行时读取的路径中,代码如下

import sys
import os
curPath = os.path.abspath(os.path.dirname('.\models'))
sys.path.append(curPath)

from models.model1 import *

这样就可以顺利的运行代码了。

        同样的问题也会出现在(.ipynb)文件中,如果直接调用业户出现找不到模块的情况,这个时候也需要我们来手动添加路径,但是写法和.py文件中有所不同,也就是在上述的ex1.ipynb文件中,应当使用的是根目录的路径,而不是models文件夹所在的绝对路径。代码如下

import sys
import os

curPath = os.path.abspath(os.path.dirname('.\models'))
rootPath = os.path.split(curPath)[0]
sys.path.append(rootPath)

from models.model2 import *

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值