微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

com.chaquo.python.PyException:ImportError:此平台缺少具有多处理功能的 sem_open

如何解决com.chaquo.python.PyException:ImportError:此平台缺少具有多处理功能的 sem_open

我正在构建一个适用于 Windows 和 Python 的应用程序。它构建正确,这个问题看起来应该在 chaquopy 7.0.3 中得到修复;但是它对我不起作用。我已经包含了尝试在 android vm 上运行时的 logcat。任何帮助将非常感激。如果需要,我可以包含更多错误消息或 logcat 的更多输出

Navigator.of(context).pop({"lat":43.821757,"long":-79.226392});

       // Top-level build file where you can add configuration options common to all sub-projects/modules.
    
        buildscript {
            ext.kotlin_version = "1.4.21"
            repositories {
                google()
                jcenter()
                maven { url "https://chaquo.com/maven" }
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:4.1.1'
                classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
                classpath "com.chaquo.python:gradle:9.1.0"
        
                // NOTE: Do not place your application dependencies here; they belong
                // in the individual module build.gradle files
            }
        }

当我在 android 上运行它时它失败了。这是通过 android studio 打印出来的:


    allprojects {
        repositories {
            google()
            jcenter()
        }
    }
    
    task clean(type: Delete) {
        delete rootProject.buildDir
    }

解决方法

Chaquopy 7.0.3 和 8.0.1 中的修复是针对导入 multiprocessing 模块而没有实际使用其多进程功能的代码。但是,您的代码似乎正在尝试创建一个多进程队列,该队列目前不起作用,因为 Android 不支持 POSIX 信号量。

假设您的应用只有一个进程,最简单的解决方案是编辑您的代码以使用 multiprocessing.dummy 而不是 multiprocessing。或者您可以直接使用单进程 queue API。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。