如何设置嵌入了 FreeCAD 库的 Python 虚拟环境,以便能够作为模块导入到脚本中?
在使用使用 FreeCAD 库创建和修改 3D 几何图形的 Python 脚本时,我希望避免使用 FreeCAD GUI 以及依赖于系统上安装的 FreeCAD。我希望 Python 虚拟环境能让这一切成为可能。
我正在 Debian 10 上的 virtualenv 中使用 PyCharm 2021.1.1 和 Python 3.8 工作。
我开始使用嵌入脚本的 FreeCAD 文档作为基础:
https://wiki.freecadweb.org/Embedding_FreeCAD
在一次尝试中,我从 Debian 下载并解压了 .deb 软件包,并注意获取每个依赖项所需的正确版本。在另一次尝试中,我复制了 FreeCAD flatpak 安装的内容,因为它应该包含 FreeCAD 依赖的所有库。
将要导入的库放入虚拟机文件夹后,我通过各种尝试使用 sys.path.append() 以及 PyCharm 的项目结构工具来指向它们。在这两种情况下,虚拟环境都会检测 FreeCAD.so 所在的位置,但无法找到其任何依赖项,即使位于同一文件夹中也是如此。当显式导入这些依赖项时,它们每个都有相同的问题。当导入失败时,这会导致死胡同,因为它没有根据Python定义模块导出函数:
ImportError: dynamic module does not define module export function (PyInit_libnghttp2)
Run Code Online (Sandbox Code Playgroud)
尽管我提供了所需的库并告知 Python 它们的位置,但我似乎正在查看一条很长的破碎依赖链。
我希望能够获得有关如何执行此操作的直接说明或描述在 Python 虚拟环境中导入 FreeCAD 库的文档的指针,因为我还没有遇到任何特定的内容。
我之前遇到了一些似乎有类似意图的问题,但没有答案:
是否可以将 Blender/Freecad 嵌入到 python 程序中?
Conda …