Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在Python3中安全地创建和导入.so文件?

如何在Python3中安全地创建和导入.so文件?
EN

Stack Overflow用户
提问于 2020-07-29 22:35:13
回答 1查看 436关注 0票数 0

我正在尝试使用Cython从我们的.py文件创建.so二进制文件,并将其与我们的团队共享。然而,即使我们都使用Python3,大多数时候它也应该是完全相似的版本(比方说3.7.8),否则我们在导入它们时会出现错误。这是预期的行为吗?

有些版本是兼容的。例如,如果我们使用python 3.5.2创建.so,并在3.6.8中导入,那么它在3.7.8中就不能正常工作

这种混乱是从哪里来的,最安全的方法是什么?

EN

回答 1

Stack Overflow用户

发布于 2020-07-30 06:55:31

要跟进我的评论:

  • 在同一平台上,扩展模块应该在“次要版本”内工作(即,使用3.7.2和3.7.3构建的模块应该是兼容的)。不过,我正在努力寻找这个问题的来源。除此之外,过去已经做出了一些努力来确保不同版本之间的兼容性,但是not so much any more,所以你可能会很幸运,事情会正常进行。

  • Python现在定义了应该跨Python版本兼容的a more limited stable ABI。Cython正在努力支持这一点,但目前它还没有处于可用的状态。在一年左右的时间里,这应该是一个很好的解决方案。

总之,.so文件不能在不同的Python版本之间移植。您应该在Python版本上进行标准化,或者在本地构建.so文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63163452

复制
相关文章
如何在 Vue3 中创建和使用单文件组件?
Vue3 是一种流行的 JavaScript 框架,它提供了创建单文件组件(Single File Components,SFC)的方式。单文件组件是一种将模板、脚本和样式封装在一个文件中的开发模式,可以提高代码的可读性和维护性。本文将详细介绍如何在 Vue3 中创建和使用单文件组件。
网络技术联盟站
2023/07/05
6670
pytorch导入错误so: undef
https://blog.csdn.net/qq_37674858/article/details/88870124
py3study
2020/01/16
8680
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
28.8K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
什么是.so文件_安卓so文件作用
(1) 动态库的编译 这里有一个头文件:so_test.h,三个.c文件:test_a.c、test_b.c、test_c.c,我们将这几个文件编译成一个动态库:libtest.so。 命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so  参考2:都是由C或C++编译出来的  -shared 该选项指定生成动态连接库(让连接器生成T类型的导出符号表,有时候也生成弱连接W类型的导出符号),不用该标志外部程序无法连接。相当于一个可执行文件  -fPIC:表示编译为位置独立的代码,不用此选项的话编译后的代码是位置相关的所以动态载入时是通过代码拷贝的方式来满足不同进程的需要,而不能达到真正代码段共享的目的。  (2) 动态库的链接 这里有个程序源文件 test.c 与动态库 libtest.so 链接生成执行文件 test: 命令:$ gcc test.c -L. -ltest -o test 注:测试是否动态连接,如果列出libtest.so,那么应该是连接正常了  -L.:表示要连接的库在当前目录中  -ltest:编译器查找动态连接库时有隐含的命名规则,即在给出的名字前面加上lib,后面加上.so来确定库的名称 命令:$ ldd test 注: 执行test,可以看到它是如何调用动态库中的函数的。
全栈程序员站长
2022/11/05
3.6K0
python3在中文路径下文件无法导入
再导入之前,请打开notepad++确保文件是,“以UTF-8无BOM格式”的编码形式,否则也会失败。
py3study
2020/01/10
2.8K0
so文件在线加固加密_安卓so文件解密
大家好,又见面了,我是你们的朋友全栈君 <span style="font-size:24px;">这篇是一系列的关于SO文件保护的自我理解,SO文件保护分为加固,混淆以及最近炒的比较火的虚拟机,由于本人菜鸟,无力分析虚拟机,我相信以后会有机会。。。加固就是将真正的so代码保护起来,不让攻击者那么轻易的发现,至于混淆,由于ART机制的介入,使得O-LLVM越来越火,这以后有机会再分析,这次主要是基于有源码的so文件保护,下次介绍无源码的so文件保护,废话不多说,开搞</span> 在这之前首先对
全栈程序员站长
2022/09/29
3.1K0
Python3 导入上级目录中的模块
首先 sys.path 的作用是:当使用import语句导入模块时,解释器会搜索当前模块所在目录以及sys.path指定的路径去找需要import的模块
py3study
2020/01/13
3.3K0
安全地写内容到文件
「写入内容将被写入到一个临时文件,如果没有错误发生,则commit()会将其移至最终文件」。这样可以确保在写入过程中发生错误的情况下,最终文件中的数据不会丢失,并且最终位置中不会存在任何部分写入的文件。建议将整个文档保存到磁盘时,请始终使用QSaveFile。
Qt君
2020/03/19
1.2K0
Android apk中so库文件未压缩
升级AS 3.6.1, 并且升级project build.gradle AGP 到3.6.1, 一个项目发现打包后文件骤然增大, 查看apk包,发现apk 包中so库文件未被压缩. 但是一个类似项目,相同版本却没有问题
全栈程序员站长
2022/07/02
1.3K0
Android apk中so库文件未压缩
python3 metaclass--创
之前学python的时候就看见过metaclass的文章,没看懂,那篇博客后面说到,metaclass是python的黑魔法99% 不会用到。于是果断放弃。
py3study
2020/01/13
4430
在 Python 中创建和修改 PDF 文件
了解如何在 Python 中创建和修改 PDF 文件非常有用。该PDF,或P ortable d ocument ˚F ORMAT,是最常见的格式在互联网上共享的文件之一。PDF可以在一个文件中包含文本、图像、表格、表单和富媒体。
玖柒的小窝
2021/12/14
13K0
如何在 Windows 10上创建和运行批处理文件
在 Windows 10 上,批处理文件是一种特殊的文本文件,通常具有。Bat 扩展,它包含一个或多个命令,命令提示符可以理解并依次运行以执行各种操作。
披头
2020/12/15
28.7K0
如何在 Windows 10上创建和运行批处理文件
android studio 导入有so 文件的项目是,程序崩溃的可能原因
由于 android studio 在建项目时,不会自动识别 so 文件,所以在含有so 文件的项目中,需要在 build.gradle 中加入 sourceSets { main() { jniLibs.srcDirs = ['libs']  } } 不加入,便会造成 method not found 的异常抛出,并且造成程序测试崩溃。 加入了,方能识别出so 文件,而eclipse 不需要加入上面 代码片段。
林冠宏-指尖下的幽灵
2018/01/03
9380
开始激活成功教程so文件_so文件格式怎么打开
简单分析指令代码: 1>、PUSH {r3-r7,lr} 是保存r3,r4,r5,r6,r7,lr 的值到内存的栈中;与之对应的是POP {r3-r7,pc}
全栈程序员站长
2022/11/04
3.9K0
开始激活成功教程so文件_so文件格式怎么打开
Android 开发中如何动态加载 so 库文件
我想对于静态加载 so 库文件,大家都已经很熟悉了,这里就不多说了。在 Android 开发中调用动态库文件(*.so)都是通过 jni 的方式,而静态加载往往是在 apk 或 jar 包中调用so文件时,都要将对应 so 文件打包进 apk 或 jar 包。 动态加载的优点 静态加载,不灵活,apk 包有可能大。所以采用动态加载 so 库文件,有以下几点好处: 灵活,so 文件可以动态加载,不是绑定死的,修改方便,so 库有问题,我们可以动态更新。 so 库文件很大的话,采用动态加载可以减少 apk 的包
非著名程序员
2018/02/02
5.2K0
点击加载更多

相似问题

ndk构建和.so文件创建

20

无法使用python3导入freecad.so

218

如何在GingerBread 2.3.3中导入.so文件?

14

Chaquopy如何在python文件中导入.so

172

如何在Python中两次导入“.so”文件

15
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文