导入特定于版本的 python 模块的最佳方法

2024-04-03

对于在特定于版本的 python 中导入模块,哪种方法最有意义?我的用例是,我正在编写将部署到 python 2.3 环境中的代码,并在几个月内升级到 python 2.5。这:

if sys.version_info[:2] >= (2, 5):
    from string import Template
else:
    from our.compat.string import Template

or this

try:
    from string import Template
except ImportError:
    from our.compat.string import Template

我知道这两种情况都同样正确并且工作正常,但哪一种更好?


总是第二种方式 - 你永远不知道不同的 Python 安装会安装什么。Template在特定情况下,它不太重要,但是当您测试功能而不是版本控制时,您总是会更加健壮。

我就是这样做的Testoob http://www.testoob.org支持Python 2.2 - 2.6:我尝试以不同的方式导入模块,直到它起作用。它也与第三方库相关。

这是一个极端的情况 - 支持 ElementTree 显示的不同选项:

try: import elementtree.ElementTree as ET
except ImportError:
    try: import cElementTree as ET
    except ImportError:
        try: import lxml.etree as ET
        except ImportError:
            import xml.etree.ElementTree as ET # Python 2.5 and up
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

导入特定于版本的 python 模块的最佳方法 的相关文章

  • 使用 Flask-restful RequestParser 进行嵌套验证

    使用烧瓶宁静 http flask restful readthedocs org 微框架 我在构建一个RequestParser这将验证嵌套资源 假设预期的 JSON 资源格式为 a list obj1 1 obj2 2 obj3 3 o
  • Python lambda 函数没有在 for 循环中正确调用[重复]

    这个问题在这里已经有答案了 我正在尝试使用 Python 中的 Tkinter 制作一个计算器 我使用 for 循环来绘制按钮 并且尝试使用 lambda 函数 以便仅在按下按钮时调用按钮的操作 而不是在程序启动时立即调用 然而 当我尝试这
  • 数据操作 startdate enddate python pandas

    我有一个促销描述数据集 其中包含有关正在运行的各种促销活动及其开始日期 结束日期的信息 promo item start date end date Buy1 get 1 A 2015 01 08 2015 01 12 Buy1 get 1
  • 使用 Flask 时在 Python 中实现持久数据库连接的最佳实践

    我的问题是关于在生产环境或其他关注性能的环境中使用 Flask 时处理数据库连接的推荐方法 在 Flask 中 g 对象可用于存储内容 并且可以将打开的数据库连接放置在那里 以允许应用程序在同一请求期间的后续数据库查询中重用它们 但是 g
  • 这是我尝试安装 pip3 时得到的结果

    这是我尝试安装 pip3 时得到的结果 sudo apt get install python3 pip Reading package lists Done Building dependency tree Reading state i
  • 使用 asyncore 读取网站

    我想异步阅读一个网站 据我所知 这是不可能的 urllib 现在我尝试使用普通套接字进行阅读 但是 HTTP 给我带来了麻烦 我遇到了各种时髦的编码 例如传输编码 分块 必须手动解析所有这些东西 我现在想编码 C 而不是 python 难道
  • python中的语音识别持续时间设置问题

    我有一个 Wav 格式的音频文件 我想转录 我的代码是 import speech recognition as sr harvard sr AudioFile speech file wav with harvard as source
  • Flask-httpauth: get_password 装饰器如何为 basic-auth 工作?

    我想知道有没有人用过这个烧瓶延伸 https github com miguelgrinberg flask httpauth简化 http basic auth 基本上我不明白这个example https github com migu
  • 设置区域设置和字符串模块

    这个简单的脚本 from locale import LC ALL setlocale print setlocale LC ALL from string import letters print letters 给我这个输出 tr TR
  • 在Python中随机化列表[重复]

    这个问题在这里已经有答案了 我想知道是否有一个好方法来 震动 Python 中的项目列表 例如 1 2 3 4 5 可能会被动摇 随机化 3 1 4 2 5 任何顺序都同样可能 from random import shuffle list
  • 遍历 globals() 字典

    我 尝试 使用globals 在我的程序中迭代所有全局变量 我就是这样做的 for k v in globals iteritems function k v 当然 这样做时 我只是创建了另外 2 个全局变量 k and v 所以我得到这个
  • 如何将 Jinja 与 Twisted 一起使用?

    我正在计划使用 Python 与 Twisted Storm 和 Jinja 一起开发一个讨论软件 问题是 Jinja 不是为 Twisted 或异步套接字库而设计的 并且使用 Twisted 提供的性能是我不打算使用 Flask 的原因
  • 为 Keras 编写自定义数据生成器

    我将每个数据点存储在 npy 文件中 其中shape 1024 7 8 我想通过类似的方式将它们加载到 Keras 模型中ImageDataGenerator 所以我编写并尝试了不同的自定义生成器 但它们都不起作用 这是我改编的一个this
  • __subclasses__ 没有显示任何内容

    我正在实现一个从适当的子类返回对象的函数 如果我搬家SubClass from base py 没有出现子类 subclasses 它们必须在同一个文件中吗 也许我从来没有直接导入subclass py对Python隐藏子类 我能做些什么
  • Python、cPickle、酸洗 lambda 函数

    我必须像这样腌制一组对象 import cPickle as pickle from numpy import sin cos array tmp lambda x sin x cos x test array tmp tmp tmp tm
  • 带回溯的 Dijkstra 算法?

    In a 相关主题 https stackoverflow com questions 28333756 finding most efficient path between two nodes in an interval graph
  • 如何克服 numpy.unique 的 MemoryError

    我正在使用 Numpy 版本 1 11 1 并且必须处理一个二维数组 my arr shape 25000 25000 所有值都是整数 我需要一个唯一的数组值列表 使用时lst np unique my arr 我正进入 状态 Traceb
  • 在Python中计算矩阵乘以其转置(AA^T)的最快方法

    在Python中将矩阵与其转置 AA T 相乘的最快方法是什么 我认为 NumPy SciPy 没有考虑使用例如时涉及的对称性 np dot or np matmul 得到的矩阵总是对称的 所以我可以想象有一个更快的解决方案 None
  • 张量流多元线性回归不收敛

    我正在尝试使用张量流训练具有正则化的多元线性回归模型 由于某种原因 我无法获取以下代码的训练部分来计算我想要用于梯度下降更新的误差 我在设置图表时做错了什么吗 def normalize data matrix averages np av
  • 用于获取有关 SVN 存储库信息的 Python 库?

    我正在寻找一个可以从 SVN 存储库中提取 至少 以下信息的库 not工作副本 修订号及其作者和提交消息 每个修订版中的更改 添加 删除 修改文件 有Python库可以做到这一点吗 对于作者和提交消息 我可以解析 db revprops 0

随机推荐

  • 来自设备的 dSYM 文件

    我的应用程序崩溃了 两天来我找不到重现崩溃的确切方法 所以 我想解码 dSYM 文件 看看有什么问题 希望有帮助 如何从设备获取 dSYM 文件 您可能需要从 Xcode 构建产品获取 dSYM 打开 Xcode 管理器 在 Xcode 中
  • Boost Spirit x3 - 惰性解析器

    有最新的吗boost spirit x3实施lazy解析器 我发现它在文档 https www boost org doc libs develop libs spirit doc x3 html spirit x3 quick refer
  • 对于移动 Safari 来说 AJAX 响应太大?

    我在调试移动 Safari 的 Web 应用程序时遇到了一些问题 该 Web 应用程序是相当复杂的服务器端模拟工具的前端 该网络应用程序的工作原理概述如下 用户将看到一个屏幕 他们可以在其中填写要执行的模拟的值 用户单击 运行模拟 此时将对
  • 如何获取 Nodejs 中显示的 console.log 行号?

    有一个旧的应用程序 它使用以下命令打印出大量消息console log 但我就是找不到哪些文件和行console log叫做 有没有办法连接到应用程序并显示文件名和行号 每个调用都有完整的堆栈跟踪有点吵 我刚刚改进了 noppa 的解决方案
  • 如何使用php传递和访问数组变量

    我有一个数组 param 在给出 Print r 时 输出如下 Array pattern gt status gt Array 0 gt 0 1 gt 4 我必须将状态值传递给一个函数 例如 function value action p
  • 如何使用ggplot2从geom_tile(热图)中删除白线

    我无法去除热图中图块之间的白线 下面是我的代码和图片 以前有人遇到过这种情况吗 t lt ggplot Drug heatmap df final aes x reorder Drug Total Deaths y Start Date f
  • 分配内存的嵌套结构

    gcc c89 我在这一行得到堆栈转储 strcpy comp gt persons gt name Joe 但是 我已经分配了内存 所以不确定为什么我会得到它 我在这里错过了什么吗 非常感谢您的任何建议 include
  • 将 WooCommerce 订单项自定义字段总和保存为新元数据

    当在此 WooCommerce 商店中订购特定产品时 两个元值将添加到订单中 存储元值的两个字段位于wp woocommerce order itemmeta 元键是 quantity assemblycost 我想在下新订单时以编程方式创
  • 从字符串 Django 模板中删除第一个字符

    我知道这个问题已经被问过多次 但每个人都达到的解决方案 和文档 似乎并不适合我 尝试删除第一个字符 Code is picture picture path slice 1 但结果仍然是 DOF mrD5T49 jpg 试图获得前导点 我是
  • ActiveMQ:如何以编程方式监控嵌入式代理

    我想从代码内部监控嵌入式 ActiveMQ 5 8 代理 如何才能做到这一点 我需要 JMX 连接吗 我想防止暴露 JMX 有没有办法访问org apache activemq broker jmx http activemq apache
  • 在一个请求中创建多个项目的 RESTful 方式

    我正在开发一个小型客户端服务器程序来收集订单 我想以 REST ful 方式 来做到这一点 我想做的是 收集所有订单行 产品和数量 并将完整订单发送到服务器 目前我看到有两种选择可以做到这一点 将每个订单行发送到服务器 POST qty 和
  • 在 AngularJS 中使用逗号作为列表分隔符

    我需要创建一个以逗号分隔的项目列表 li b email last b li 根据 AngularJS 文档 表达式中不允许使用控制流语句 这就是为什么我的 last 不起作用 是否有其他方法来创建逗号分隔的列表 EDIT 1有没有比以下更
  • SQLite 并插入 UTC 格式的当前日期

    如何在 sqlite 数据库上使用 SQL 语句插入 UTC 格式的当前日期 我找到了NOW函数 但它的格式是什么 这将在移动设备上进行 因此每个人都会有不同的区域设置 但是 我需要标准时间格式 因为设备会将日期与我的服务器进行比较 另外
  • Python - DM 用户 Discord 机器人

    我正在 Python 中开发一个 User Discord 机器人 如果机器人所有者输入 DM user然后机器人会私信所有者提到的用户 client event async def on message message if messag
  • 是否可以在同一个 html 页面中多次使用相对位置?

    我在主页上使用 相对位置 和 绝对位置 我有一个使用上述母版页的页面 并且我尝试在此页面中再次对其他 2 个元素使用 相对位置 和 绝对位置 但该页面中下面的元素 绝对位置 是不是根据其上方的元素放置的 相对位置 而是指母版页中元素的 相对
  • 如何在 JavaFX 中将 GUI 覆盖到 3D 场景上?

    我在 JavaFX 中有一个 3D 场景 需要在 3D 场景上覆盖 GUI 我尝试向场景添加按钮和文本 但它们始终作为 3D 对象出现在 3D 视图中 我环顾四周 没有找到该怎么做 唯一的解决方法是创建一个全新的窗口并将设置放在那里 但在这
  • Android Facebook - 获取空个人资料

    第一次使用 Facebook SDK 我无法获取用户个人资料 它始终为空 怎么了 btnFbWidget LoginButton findViewById R id btnFbWidget btnFbWidget setReadPermis
  • 删除indexedDB对象存储中特定索引值的所有记录

    对于数组键为的对象存储 a b where a也是一个索引 有没有更有效的方法来删除特定值的所有记录a而不是在索引上打开游标a并通过光标逐步删除每条记录 有没有办法只为索引定义键范围 或者只为索引定义键范围a然后离开b打开任何值 以便可以删
  • 如何在 AngularJS 和 Jasmine 中对 $http 进行单元测试

    这是我的代码 因为代码很长 所以我做了一个 Plunker describe create function it Should be defined function expect BaseService create toBeDefin
  • 导入特定于版本的 python 模块的最佳方法

    对于在特定于版本的 python 中导入模块 哪种方法最有意义 我的用例是 我正在编写将部署到 python 2 3 环境中的代码 并在几个月内升级到 python 2 5 这 if sys version info 2 gt 2 5 fr