Skip to main content
 首页 » 编程设计

python之如何在 shebang 不准确时自动检查 Python 脚本的正确版本

2025年05月04日35dudu

例如,我找到download_model_binary.py的 shebang 是错误的,因为它包含 Python 2 库函数 urllib.urlretrieve。

我尝试使用两个 python 解释器来执行文件并在脚本中观察它的返回值,但它会导致副作用。

注意:我问的是如何检测现有 Python 2 脚本的正确版本,例如 download_model_binary.py,它有错误的 shebang,而不是如何重写它以使其兼容。

请您参考如下方法:

你可以这样做:

import sys 
 
if sys.version_info.major < 3: 
     from urllib import urlretrieve 
else: 
     from urllib.request import urlretrieve 

稍后使用:

urlretrieve(frontmatter['caffemodel_url'], model_filename, reporthook) 

如果您经常需要这个,请考虑使用 Python Future .它提供了一个 good solution对于这类问题。