python venv 如何管理 C++ 依赖项

How does python venv manage C++ dependencies

我正在使用一个库,它为 c++ 可执行文件提供 python 包装器。

我安装了它 (https://github.com/bulletphysics/bullet3) using venv (https://docs.python.org/3/library/venv.html) - 一切正常。

我正在考虑尝试构建 https://github.com/bulletphysics/bullet3

我从 venv 文件夹的根目录找到 gym/lib/python3.7/site-packages/pybullet.cpython-37m-x86_64-linux-gnu.so。我猜这是最终从 python.

调用的可执行文件

从 Python 调用正确的外部二进制可执行文件涉及哪些步骤? import pybullet as p如何解析为gym/lib/python3.7/site-packages/pybullet.cpython-37m-x86_64-linux-gnu.so?

这似乎接近c++世界的末日;但我无法找到正确的关键字搜索来确切地了解如何允许 python 用法。

谢谢

简而言之:C-python 只是在 PYTHONPATH 中寻找正确命名的动态库,加载这样的库并使用预定义的接口来理解这个库中的哪些内容应该作为内部模块的内容可见 Python.

https://docs.python.org/3/extending/index.html

中详细描述了如何准备此类共享对象及其所需内容的详细信息

所以venv只是把动态库放在虚拟环境的PYTHONPATH目录下。

python 只是在 PYTHONPATH 中寻找正确命名的动态库,加载这样的库并使用预定义的接口

了解更多信息: https://docs.python.org/3/extending/index.html