gpt4 book ai didi

python - 如何设置 VSCode 以便能够从子目录导入文件

转载 作者:行者123 更新时间:2023-12-04 15:13:15 30 4
gpt4 key购买 nike

@KindNotice:我搜索了当前的足迹,如 this onethis one潜在的解决方案。但是,我仍然很难将所有信息收集在一起并找到最佳的工作设置。尽管我的案例可能不那么普遍,但它试图将来自 SO 不同地方的点连接起来。在标记为重复项之前请考虑这一点。

我的项目结构如下:

my-project/
src/
model.py
utils.py
__init__.py
notebooks/
test.py

model.py 我有一个导入:

from utils import my_function

我的工作目录设置为 my-project(由 os.getcwd() 返回)。我正在使用 Conda 环境,并尝试按照建议修改 PYTHONPATH here与:

"env": {"PYTHONPATH": "${workspaceRoot}, ${workspaceRoot}/src"}

我的 src 目录中也有 __init__.py。根据我的理解,如果我使用 from src.utils import my_function 它会在 VSCode 中正常工作 - 但是,当从 src 目录(其中 model.py 脚本所在)。为了添加所有这些,我希望能够将我的模块导入位于 notebooks 中的 jupyter notebook 文件中。

能够从此处的 src 导入其他模块的脚本的最佳设置是什么?在这里编辑 PYTHONPATH 真的有必要吗? (我看不到任何效果)。

最佳答案

导入其他文件夹下的模块(文件)时,VSCode默认从文件的父文件夹开始。

我在VSCode中导入和使用其他文件中文件的类和方法的方式如下:

  1. 使用绝对路径。设置VSCode搜索路径的方式是从当前项目开始。 VSCode 在执行代码之前先更改项目文件夹路径。

    例如:使用

    "env": {
    "PYTHONPATH": "D:\\...\\folder"
    }

    在“launch.json”中添加项目的绝对路径。

  2. 使用相对路径。根据文件的相对路径找到项目路径(使用导入的模块文件),然后VSCode将从项目文件夹开始搜索。

    例如:在文件开头使用如下代码查找项目文件夹路径:

import os,sys
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

运行:

enter image description here

enter image description here

enter image description here

关于python - 如何设置 VSCode 以便能够从子目录导入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64816652/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com