我在构建.gradle文件中使用charset-normalizer 3.0.0版本而不是3.2.0版本,可以避免在Android Studio中出现与aiohttp相关的库错误吗?

我使用chaquopy将Python集成到Android中。我正在制作一个相当简单的应用程序,使用了openai和webvtt库;因此,我的src/main/script.py文件开头包含了“import openai”和“import webvtt”。我的build.gradle文件中也包含以下代码块:

android {    namespace 'com.example.python_integration'    compileSdk 33    defaultConfig {        python{            pip{                install "numpy"            }        }        python{             pip{                install "openai"            }        }        python{            pip{                install "tk"            }        }        python{            pip{                install "webvtt_py"            }        }

当我在模拟器中运行应用程序时,会收到警告:“aiohttp 3.8.1需要charset-normalizer<3.0,>=2.0,但你使用的是charset-normalizer 3.2.0,这是不兼容的。”

我尝试在gradle中添加以下实现:

implementation ‘com.github.Ousret:charset_normalizer:3.0.0’

以及尝试

implementation ‘com.github.mizosoft.charset-normalizer:charset-normalizer:3.0.0’

但我仍然收到错误/警告。这个警告重要吗?我是否需要添加另一段代码块,以便gradle使用之前的charset-normalizer版本?应用程序仍然可以运行,但我还在编辑我的script.py,所以我无法判断这是否是一个关键错误,目前我只是确保我可以让原始Python脚本中需要的所有库正常工作。有时我在模拟器中构建应用程序时,甚至不会在构建日志中看到这个错误,所以它随机出现让我感到有些沮丧。也许我完全误解了情况?


回答:

这个警告是否关键,取决于你的应用程序的功能。但你可以通过直接添加指定版本的要求来解决这个问题:

install "charset-normalizer<3.0,>=2.0"

你每次构建应用程序时都不会看到警告的原因是,只有当你更改pip代码块或其他相关设置(如Python版本)时,pip才会重新运行。

附加说明:

  • 你可以在python { pip }代码块中包含多个install行,因此你不需要多次复制整个代码块。
  • Gradle的dependencies代码块与你的Python需求完全独立,因此不必编辑它。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注