基于Python版本动态选择Python库

2024-10-01 15:35:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python脚本,它需要在RHEL6.x上运行,RHEL6.x默认为Python2.6,但也应该使用最新的Python。我需要解析命令行参数,但是python2.6只包含optparse,在最近的Python中,optparse已经被弃用,取而代之的是argparse。有没有一种方法可以动态选择是使用argparse还是optparse(我意识到这需要两种解析算法)?你知道吗


Tags: 方法命令行脚本算法参数argparse动态optparse
2条回答

现在请继续使用optparse,对于python2.6安装,请使用安装^{} from PyPI。你知道吗

不要为了支持两个Python版本而尝试同时支持这两个版本;省得自己头疼。optparse可能会被弃用,但是在使用python2.7运行时仍然可以正常工作。它的特性比argparse所能提供的要少。你知道吗

如果您也必须在Python3.x安装上运行,那么您可以使用导入保护尝试支持这两种安装:

try:
    import argparse
    # configure argparse
except ImportError:
    import optparse
    # configure optparse

但是如果只是将argparse作为一个依赖项进行发布就容易多了。你知道吗

你知道吗 请尝试先导入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所具有的改进功能的话

相关问题 更多 >

    热门问题