动态选择基于Python版本的Python库

时间:2014-08-09 16:21:42

标签: python command-line

我正在编写一个需要在RHEL 6.x上运行的Python脚本,它默认使用Python 2.6,但也应该使用最新的Python。我需要解析命令行参数,但Python 2.6只包含optparse,在最近的Python中已经弃用了arpparse。有没有办法动态选择是否使用argparse或opt parse(我意识到它需要两个解析算法)?

2 个答案:

答案 0 :(得分:3)

首先尝试导入argparse,然后使用optparse,如果找不到它:

try:
    import argparse
    # Argparse-specific stuff
except ImportError:
    import optparse
    # Optparse-specific stuff

您还可以使用sys.versionsys.version_info检查python版本。

import sys
if (sys.version_info.major >= 2 and sys.version_info.minor >= 7):
    import argparse
    # ...
else:
    import optparse

或者,您可以在所有版本上使用optparse,如果您不需要改进的功能argparse

答案 1 :(得分:0)

暂时坚持使用optparse安装argparse from PyPI进行Python 2.6安装。

不要试图只支持两个Python版本;为自己省去头痛。 {@ 1}}可能已被弃用,但在使用Python 2.7运行时,仍能正常运行。它的功能比optparse提供的功能少。

如果您还必须在Python 3.x安装上运行,那么可以尝试使用导入防护来支持这两者:

argparse

但是将try: import argparse # configure argparse except ImportError: import optparse # configure optparse 作为依赖项运送起来要容易得多。