例如,我发现在包含Python 2库函数时,download_model_binary.py的shebang是错误的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
Run Code Online (Sandbox Code Playgroud)
以后使用:
urlretrieve(frontmatter['caffemodel_url'], model_filename, reporthook)
Run Code Online (Sandbox Code Playgroud)
如果您需要,请经常考虑使用Python Future.它为这类问题提供了一个很好的解决方案.