Python 3.x 如何使用Python3中的enum而不是PyPI中的enum——这是在Windows上安装Android VTS时遇到的问题?
我正在尝试在Windows上设置AOSP VTS测试。安装时,会有一个pip_requirements.txt,它尝试下载稍后将在测试执行期间安装的枚举包。运行测试用例时,存在导致vts运行失败的与枚举相关的问题。测试运行期间出现的错误如下所示Python 3.x 如何使用Python3中的enum而不是PyPI中的enum——这是在Windows上安装Android VTS时遇到的问题?,python-3.x,enums,android-source,pypi,android-vts,Python 3.x,Enums,Android Source,Pypi,Android Vts,我正在尝试在Windows上设置AOSP VTS测试。安装时,会有一个pip_requirements.txt,它尝试下载稍后将在测试执行期间安装的枚举包。运行测试用例时,存在导致vts运行失败的与枚举相关的问题。测试运行期间出现的错误如下所示 ..\AppData\Local\Temp\pip-install-zp3vtjdn\enum\setup.py", line 24, in <module> version = main_module.__vers
..\AppData\Local\Temp\pip-install-zp3vtjdn\enum\setup.py", line 24, in <module>
version = main_module.__version__
AttributeError: module 'enum' has no attribute '__version__'
经过一些分析,我发现pip正在下载的enum包正在下载以下“”。此包也有一个enum.py,这可能是导致属性错误的原因:
AttributeError: module 'enum' has no attribute '__version__'
PyPI页面链接提到:
被Python标准库取代
Python3现在在其标准库中有一个枚举实现(也是
作为第三方enum34可用于较旧的Python版本
取代此库的
我的理解是:由于python3enum包超越了PyPI enum包,所以应该使用python3enum包而不是PyPI enum包,对吗
我的理解正确吗?如果是的话,那么如何实现呢?i、 e.当pip尝试下载/安装enum包时,如何将其重定向到使用Python3 enum包,而不是PyPI使用enum包
提前谢谢 Python3
Enum
不是PyPIEnum
的替代品——它们有不同的API。如果正在安装的软件包确实需要PyPI版本,那么stdlib版本将无法工作。Python3Enum
不是PyPIEnum
的替代品——它们有不同的API。如果正在安装的软件包确实需要PyPI版本,则stdlib版本将不起作用。我不确定在Windows上运行VTS是否是一个好主意(但它可能会起作用-我不知道,实际上我对VTS一无所知)。由于AOSP开发是在Linux上进行的,我建议在所有相关的事情上都使用Linux。即使在Linux上,工具版本也经常发生冲突,我想对于Windows来说可能更糟。这就是为什么Docker容器在CI测试和AOSP构建中越来越流行的原因。因此,我建议在Windows上的VM中运行Linux(没有GUI的Linux可能就足够了),其中包含一个Docker容器(用于VTS工具本身)。或者您可以在Windows 10上尝试Docker我不确定在Windows上运行VTS是否是一个好主意(但它可能会起作用-我不知道,实际上我对VTS一无所知)。由于AOSP开发是在Linux上进行的,我建议在所有相关的事情上都使用Linux。即使在Linux上,工具版本也经常发生冲突,我想对于Windows来说可能更糟。这就是为什么Docker容器在CI测试和AOSP构建中越来越流行的原因。因此,我建议在Windows上的VM中运行Linux(没有GUI的Linux可能就足够了),其中包含一个Docker容器(用于VTS工具本身)。或者您也可以在Windows 10上尝试Docker
AttributeError: module 'enum' has no attribute '__version__'