pythoninterp error_从Python Interp运行时获取“importterror:尝试使用未知父包进行相对导入”...
我知道我迟到了,但我想我找到了解决这个问题的办法。希望这对从事大型Python项目的其他人有用。
诀窍是尝试一种导入格式,如果第一种格式失败,则返回到另一种格式。
方法1
db.pytry:
# Assume we're a sub-module in a package.
from . import models
except ImportError:
# Apparently no higher-level package has been imported, fall back to a local import.
import models
另一方面,这种方法非常简单,但伸缩性不好(模块名重复)。可以通过编程方式导入来改进缩放。
方法2(不推荐)
db.pyimport importlib
root = 'project.modules.core'
my_modules = ['core', 'models']
for m in my_modules
try:
globals()[m] = importlib.import_module(root + '.' + m)
except ImportError:
globals()[m] = importlib.import_module(m)
当然,现在这个功能需要在每个模块中复制。我不确定这是否真的比第一种方法有所改进。但是,您可以将此逻辑分离到它自己的独立包中,该包位于pythonpath上的某个位置。
方法3
包装进口商.pyimport importlib
def import_module(global_vars, root, modules):
for m in modules
try:
global_vars[m] = importlib.import_module(root + '.' + m)
except ImportError:
global_vars[m] = importlib.import_module(m)
db.pyimport package_importer
root = 'project.modules.core'
my_modules = ['core', 'models']
package_importer.import_module(globals(), root, my_modules)
pythoninterp error_从Python Interp运行时获取“importterror:尝试使用未知父包进行相对导入”...相关推荐
- 【解决】Python程序运行时所占内存越来越大
1.问题描述 最近在用Python(Pyqt5)编写一个可以获取gpu信息(功耗.显存占用.利用率等)并将这些信息保存成csv文件的程序.在程序编写完成后,运行时却发现,随着程序的运行,所占用的内存每 ...
- gettype获取类名_在TypeScript中运行时获取对象的类名
在TypeScript中运行时获取对象的类名 是否可以使用typescript在运行时获取对象的类/类型名称? class MyClass{} var instance = new MyClass() ...
- java hibernate方言_java – 如何在运行时获取Hibernate方言
在我的应用程序中,我使用Hibernate与SQL Server数据库,所以我设置 在我的persistence.xml中. 在某些情况下,我想用NULL包括排序记录,我使用关键字NULLS FIRS ...
- java 获取运行时参数,Java8增强反射可以在运行时获取参数名
技术公众号:Java In Mind(Java_In_Mind),欢迎关注! 原文:Java8增强反射可以在运行时获取参数名 介绍 在JDK增强意见:JPE 118:Access to Paramet ...
- java 运行时获取泛型真实类型
前情提要 本文章用于运行时获取泛型的具体类型,有一些情况下可以获取到真实类型,有一些情况下获取不到的情况. Class 类的两个方法 /*** Returns the {@code Class} re ...
- 使用Conda Pack打包Python独立运行时环境
使用Conda Pack打包Python独立运行时环境 版本说明: python=2.7 Conda 的Pack工具,可以说是让我发现了新大陆.之前有个项目使用它解决了一个棘手的问题,一直没有整理相关 ...
- 如何在程序运行时获取 dpdk-16.04 大页使用情况?
前言 基于 dpdk-16.04 开发的 dpdk 程序需要使用的大页内存总大小可以通过计算得出,但由于 dpdk-16.04 legacy memory 模型只支持物理地址连续的 segment 内 ...
- 1.Containerd容器运行时初识与尝试
0x00 前言简述 1.基础介绍 2.专业术语 3.架构简述 0x01 安装配置 1.Ubuntu安装Containerd.io流程 0x02 简单使用 1.镜像拉取与运行 2.创建和使用网络 3.与 ...
- Unity中在运行时获取AnimationClip中的关键帧信息
今天遇到一个制作动画路径的问题如下: 从题中可以看出物体路径受指定动画操控,我们不能改变控制方式,因此问题的重点在于如何从AnimationClip中获得位置每帧物体XYZ移动的位置信息,有了位置信息 ...
最新文章
- iOS - 在UITextField外部触摸时关闭键盘
- velocity 模板语言(VTL)
- Excel中文字换行
- PrestaShop物流跟踪模块
- (转)Spring Boot (十九):使用 Spring Boot Actuator 监控应用
- nginx每日日志切割脚本
- 汽车显示服务器出现异常,领克06车机网络异常怎么办?我们梳理了四种处理方法,建议牢记...
- 001如何将灰度视频处理为伪彩色
- 在苹果Mac上怎样使用鼠标来放大图像?
- 新浪邮箱下载的都是php,为什么我用新浪邮箱以及手机号码注册的支付宝能够登陆,但是用163邮箱的支付宝登陆数据库就会报错...
- Oracle Instance and Database
- Java的“小心心”
- 为啥现在还有人相信5G辐射危害健康?
- [FROM WOJ]#2040 山贼集团
- SpringCloud Stream @EnableBinding注解过时
- 一周Hard (2021.11.29-2021.12.05)
- JavaScript常用的工具方法
- 类似于#Uncaught (in promise) TypeError: Cannot read properties of undefined (reading ‘length‘)
- css绝对定位后居中显示文字
- 基于GIS探究环境和生态因子对水体、土壤、大气污染物的影响
热门文章
- springboot图书管理怎么实现借书时间到期提醒_东和店镇第一小学图书数字化管理先进做法...
- SurfaceFlinger与Hardware Composer
- PulseAudio VS AudioFlinger(七)
- 传统蓝牙和Bluz低功耗蓝牙的区别
- 上海传音控股驱动开发笔试题
- 一张图看尽 Linux 内核运行原理
- Wpf之无法获取鼠标点击事件
- tensorflow之max_pool
- 钉钉扫码登录第三方_e签宝联合钉钉升级产品功能,共建企业服务生态闭环
- ❤️一分钟学会Python网络编程❤️