例如,我找到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对于这类问题。
