關于無法導入父路徑的問題

問題重現

有下面的代碼:

from ..utils import Config,set_DATA_PATH
DATA_PATH = set_DATA_PATH()

報錯如下:

    from ..utils import Config,set_DATA_PATH
ImportError: attempted relative import beyond top-level package

解決方案

#獲取當前腳本所在目錄的父目錄(項目根目錄)
import sys
import os
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
if project_root not in sys.path:sys.path.insert(0, project_root)
from utils import Config, set_DATA_PATH

文件結構:

project 3- utils- directory 2- file(被運行的文件) 1

這個解決方案通過以下方式解決問題:

  1. 確定項目根目錄:

    file 獲取當前腳本的絕對路徑 1

    os.path.abspath() 確保路徑是絕對路徑

    os.path.dirname() 兩次獲取父目錄的父目錄(項目根目錄) 1->2->3

  2. 修改Python路徑:

    sys.path 是Python解釋器查找模塊的路徑列表

    sys.path.insert(0, project_root) 將項目根目錄添加到路徑列表的開頭

    這樣Python會在項目根目錄中查找模塊,使絕對導入成為可能

  3. 效果:

    解決了相對導入的限制

    允許使用絕對導入(如from utils import Config, set_DATA_PATH)

    無論腳本如何運行(直接運行或作為模塊導入),都能正常工作

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/95525.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/95525.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/95525.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C/C++包管理工具:Conan

Conan是一個專為C/C設計的開源、去中心化、跨平臺的包管理器,致力于簡化依賴管理和二進制分發流程。Conan基于Python進行開發,支持與主流的構建系統集成,提供了強大的跨平臺和交叉編譯能力。通過Conan,開發者可以高效的創建、共享…

核心高并發復雜接口重構方案

核心高并發復雜接口重構方案 一、重構目標與原則 核心目標 提升接口性能:降低響應時間,提高吞吐量,降低資源使用 增強可維護性:拆解復雜邏輯,模塊化設計,降低后續迭代成本 保障穩定性:通過架構優化和灰度策略,確保重構過程無服務中斷 提升擴展性:設計靈活的擴展點,…

C++容器內存布局與性能優化指南

C容器的內存布局和緩存友好性對程序性能有決定性影響。理解這些底層機制,能幫你寫出更高效的代碼。 一、容器內存布局概述 不同容器在內存中的組織方式差異顯著,這直接影響了它們的訪問效率和適用場景。容器類型內存布局特點元數據位置元素存儲位置std::…

Beautiful.ai:AI輔助PPT工具高效搞定排版,告別熬夜做匯報煩惱

你是不是每次做 PPT 都頭大?找模板、調排版、湊內容,熬大半夜出來的東西還沒眼看?尤其是遇到 “明天就要交匯報” 的緊急情況,打開 PPT 軟件半天,光標在空白頁上晃來晃去,連標題都想不出來 —— 這種抓瞎的…

阿里云攜手MiniMax構建云原生數倉最佳實踐:大模型時代的 Data + AI 數據處理平臺

MiniMax簡介MiniMax是全球領先的通用人工智能科技公司。自2022年初成立以來,MiniMax以“與所有人共創智能”為使命,致力于推動人工智能科技前沿發展,實現通用人工智能(AGI)。MiniMax自主研發了一系列多模態通用大模型,…

一鍵生成PPT的AI工具排名:2025年能讀懂你思路的AI演示工具

人工智能正在重塑PPT制作方式,讓專業演示變得觸手可及。隨著人工智能技術的飛速發展,AI生成PPT工具已成為職場人士、學生和創作者提升效率的得力助手。這些工具通過智能算法,能夠快速將文本、數據或創意轉化為結構化、視覺化的演示文稿&#…

數據庫基礎知識——聚合函數、分組查詢

目錄 一、聚合函數 1.1 count 1.1.1 統計整張表中所有記錄的總條數 1.1.2 統計單列的數據 1.1.3 統計單列記錄限制條件 1.2 sum 1.3 avg 1.4 max, min 二、group by 分組查詢 2.1 語法 2.2 示例 2.3 having 一、聚合函數 常用的聚合函數 函數說明count ([distinc…

改 TDengine 數據庫的時間寫入限制

一 sql連數據庫改 改 TDengine 數據庫的時間寫入限制 之前默認了可寫入時間為一個月,調整為10年,方便測試: SHOW DATABASES;use wi; SELECT CONCAT(ALTER TABLE , table_name, KEEP 3650;) FROM information_schema.ins_tables WHERE db_…

數碼視訊TR100-OTT-G1_國科GK6323_安卓9_廣東聯通原機修改-TTL燒錄包-可救磚

數碼視訊TR100-OTT-G1_國科GK6323_安卓9_廣東聯通原機修改-TTL燒錄包-可救磚刷機教程數碼視訊 TR100-G1 TTL 燒錄刷機教程固件由廣東聯通 TR100-G1 28 原版修改,測試一切正常1、把刷機文件解壓出 備用,盒子主板接好 TTL,不會接自行查找 TTl 接…

TVS防護靜電二極管選型需要注意哪些參數?-ASIM阿賽姆

TVS防護靜電二極管選型關鍵參數詳解TVS(Transient Voltage Suppressor)二極管作為電路防護的核心器件,在電子設備靜電防護(ESD)、浪涌保護等領域發揮著重要作用。本文將系統性地介紹TVS二極管選型過程中需要重點關注的參數指標,幫助工程師做出合理選擇。…

項目經理為什么要有一張PMP?認證?

在項目管理日益成為企業核心競爭力的今天,PMP已成為項目經理職業發展的重要“通行證”。這張由美國項目管理協會(PMI)頒發的全球公認證書,不僅是專業能力的象征,更在職業競爭力、項目成功率、團隊協作等多個維度為項目…

Qt中QSettings的鍵值使用QDataStream進行存儲

1. QDataStream介紹 數據流是編碼信息的二進制流,與主機的操作系統、CPU 或字節順序完全無關。例如,Windows 系統下 PC 寫入的數據流可由運行 Solaris 的 Sun SPARC 讀取。 您還可以使用數據流讀/寫raw unencoded binary data 。如果需要 "解析 &…

Typer 命令行工具使用示例

Typer 命令行工具使用示例 示例1:簡單問候程序 代碼 import typerapp typer.Typer()app.command() def greet(name: str):"""簡單的問候命令"""typer.echo(f"Hello {name}!")if __name__ "__main__":app()使用…

關于CAN總線bus off 理論標準 vs 工程實踐

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 做到欲望極簡,了解自己的真實欲望,不受外在潮流的影響,不盲從,不跟風。把自己的精力全部用在自己。一是去掉多余,凡事找規律,基礎是誠信;二是…

CAN堆棧

PDU映射到HOH將硬件對象句柄HOH抽象成為硬件抽象層CanIf將pdu映射到硬件對象句柄上一個HOH代表一個Can控制器的一個消息緩沖區發送緩存區當所有Can硬件資源被占用時,LPDU存儲在緩沖區中。發送取消為了解決優先級反轉的問題,高優先級L-PDU會請求取消低優先…

sub3G和sub6G的區別和聯系

Sub-3G 和 Sub-6G 的區別與聯系Sub-3G 和 Sub-6G 是無線通信中頻段的不同分類,尤其在4G LTE和5G網絡中,定義了無線信號傳輸的不同頻率范圍。具體來說,Sub-3G 通常指的是低于3 GHz的頻段,而 Sub-6G 是指低于6 GHz的頻段。這些頻段的…

【數據可視化-106】華為2025上半年財報分析:用Python和Pyecharts打造炫酷可視化大屏

🧑 博主簡介:曾任某智慧城市類企業算法總監,目前在美國市場的物流公司從事高級算法工程師一職,深耕人工智能領域,精通python數據挖掘、可視化、機器學習等,發表過AI相關的專利并多次在AI類比賽中獲獎。CSDN…

Scikit-learn Python機器學習 - 特征預處理 - 歸一化 (Normalization):MinMaxScaler

鋒哥原創的Scikit-learn Python機器學習視頻教程: 2026版 Scikit-learn Python機器學習 視頻教程(無廢話版) 玩命更新中~_嗶哩嗶哩_bilibili 課程介紹 本課程主要講解基于Scikit-learn的Python機器學習知識,包括機器學習概述,特征工程(數據…

LINUX_Ubunto學習《2》_shell指令學習、gitee

0、前言: 0.1、為什么學習shell腳本 學習Shell(Shell腳本編程)是提升系統管理和開發效率的重要技能,尤其在Linux/Unix環境中作用顯著。Shell是用戶與操作系統內核的接口,學習Shell有助于掌握系統工作原理。shell的核心…

系統安裝與遷移工具,一鍵下載系統并制作U盤啟動盤

大家好,今天想跟大家分享一款非常實用的軟件——Hasleo WinToUSB 下載地址獲取 點擊獲取:WinToUSB啟動盤 打開后的界面; image Windows To Go USB 可以安裝或克隆 Windows 到 USB 設備,作為便攜式 Windows 使用 可以選擇直接用…