首页 > 其他分享 >import导入文件路径注意点

import导入文件路径注意点

时间:2024-11-07 19:08:31浏览次数:1  
标签:py 路径 subA 导入 path import main os

目录结构

 - lib
   - main.py
   - package1
     - subA.py
     - subB.py
   - package2
     - subC.py
   - subD.py

要在main文件中导入subA

# 方案1
 - main.py
from package1 import subA
# 方案2
 - main.py
from lib.package1 import subA

要在main文件中,通过subA导入subB

# 方案1
 - main.py
from package1 import subA

 - subA.py
# 需要通过修改路径信息的方法,将当前路径加入系统搜索路径
import sys
import os

# print(f'修改前的{sys.path = }')
current_dir = os.path.dirname(os.path.abspath(__file__))
parent_dir = os.path.abspath(os.path.join(current_dir, os.pardir))
sys.path.append(parent_dir)
# print(f'修改后的{sys.path = }')

form lib.package1 import subB

# 方案2
 - main.py
from lib.package1 import subA

 - subA.py
form . import subB

要在main文件中导入subC

# 方案1
 - main.py
from package1 import subA

 - subA.py
# 需要通过修改路径信息的方法,将当前路径加入系统搜索路径
import sys
import os

# print(f'修改前的{sys.path = }')
current_dir = os.path.dirname(os.path.abspath(__file__))
parent_dir = os.path.abspath(os.path.join(current_dir, os.pardir))
sys.path.append(parent_dir)
# print(f'修改后的{sys.path = }')

form lib.package2 import subC

# 方案2
 - main.py
from lib.package1 import subA

 - subA.py
form ..package2 import subC

两种方案比较

方案1
需要系统文件操作,较复杂。
通过系统操作获得的绝对路径,适用性更强,而且可以通过直接运行subA,实现导入subBsubC

方案2
在主程序的导包路径中添加根目录,操作简答。
采用相对路径,操作较简便,未验证使用性,而且无法通过直接运行subA,实现导入subBsubC

标签:py,路径,subA,导入,path,import,main,os
From: https://www.cnblogs.com/upbach/p/18533803

相关文章

  • anaconda配置path路径的操作
    配置Anaconda的PATH路径可以帮助你在命令行中直接使用Anaconda的命令,如conda、jupyter等,而不需要每次都指定完整路径。以下是详细的操作步骤:Windows操作系统1.打开环境变量设置右键点击“此电脑”或“计算机”图标,然后选择“属性”。在左侧菜单中选择“高级系......
  • 路径分析算法—基于Floyd算法的路径分析
    原文链接:路径分析算法—基于Floyd算法的路径分析–每天进步一点点Floyd算法是一种用于在已知给定的加权图中求多源点之间最短路径的算法。它与Dijkstra算法类似,不同点在于Dijkstra计算的是单源点之间的最短路径。Floyd算法是在数学建模领域和日常工作中使用频率较高的路径分......
  • 路径分析算法—基于A*算法的路径搜索
    原文链接:路径分析算法—基于A*算法的路径搜索–每天进步一点点A*算法擅长解决静态路径中最短路径问题,而又不同于Dijkstra算法和Floyd算法,该算法综合了广度优先搜索(BreadthFirstSearch)和Dijkstra算法的优点:在进行启发式搜索提高算法效率的同时,可以保证找到一条最优路径(基于评......
  • Vue 3 项目中导入外部的 <link> 和 <script> 资源
    在Vue3项目中,可以通过以下几种方式来导入外部的<link>和<script>资源:导入外部CSS文件方法1:在单个组件中使用 <style> 标签可以在单个Vue组件的<style>部分使用@import语句来导入外部CSS文件:<template><!--组件模板--></template><scriptsetup......
  • 基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出规划路径结果和满载率
    1.程序功能描述基于ACO蚁群优化的VRPSD问题求解matlab仿真,输出ACO优化的收敛曲线,规划路径结果和每一条路径的满载率。2.测试软件版本以及运行结果展示MATLAB2022a版本运行 3.核心程序%搜索fori=1:Iterationiis_best=0;forj=1:Npop......
  • 导入csv文件到milvus
    1.创建表milvus_cliconnect-urihttp://192.168.1.134:19530-troot:Milvususedatabase-ddb_testcreatecollection-ctb_test02-fid:INT64:primary_field-fvector:FLOAT_VECTOR:128-fa1:INT64:a1-fb1:VARCHAR:32-pid-A-d'car_collection' 2.准备数据......
  • 在 Windows Server 2025 中,您可以通过 Certutil、PowerShell 和证书管理器工具来进行
    certmgr.msc是Windows操作系统中的一个管理工具,它用于管理和查看证书存储。通过certmgr.msc,用户可以方便地浏览和管理个人证书、受信任的根证书颁发机构(CA)、中间证书颁发机构等不同证书存储区。 1. certmgr.msc 是什么?certmgr.msc是证书管理器(CertificateM......
  • 【Spring IoC&DI】路径扫描,DI依赖注入
    【路径扫描】Spring注重路径,约定大于配置例如,这个路径下,Spring默认会去扫描下【com.baiye.ioc】下面所有类中加了五大注解的路径,不在这个路径下是默认不会去扫描的即:Spring默认的扫描路径是——启动类所在的目录及其子目录但,当启动类放到Service包中时,扫描路径就变成了......
  • IIS修改网站虚拟路径,IIS虚拟路径设置方法
    在IIS中修改网站的虚拟路径可以通过以下步骤完成:打开IIS管理器:在Windows服务器上,打开“InternetInformationServices(IIS)Manager”。选择网站:在左侧的“连接”面板中,展开“网站”节点,选择需要修改虚拟路径的网站。添加虚拟目录:右键点击网站,选择“添加虚拟目......
  • 代码随想录算法训练营第十六天|leetcode513.找树左下角的值、leetcode112.路径总和、l
    1leetcode513.找树左下角的值题目链接:513.找树左下角的值-力扣(LeetCode)文章链接:代码随想录视频链接:怎么找二叉树的左下角?递归中又带回溯了,怎么办?|LeetCode:513.找二叉树左下角的值_哔哩哔哩_bilibili思路:就是用一个东西存储result,使用后续遍历,如果遇到了最深的那一个值,就......