有这个不错的python 模块渲染美丽的原子使用Blender 的 Python API
pip
我在 Ubuntu 22 LTS 上安装了所有东西,没有问题
>> pip install bpy
>> pip install batoms
当我尝试简单的例子时:
# from https://beautiful-atoms.readthedocs.io/en/latest/getting_started/python.html
from ase.build import molecule
#from batoms_api import render # original
from batoms import render # modified since pip package is called batoms
atoms = molecule("H2O")
render_input = {"viewport": [1, 1, 0], "engine": "cycles", "output": "h2o.png",}
render(atoms, render_input=render_input)
我收到以下错误:
假设bpy
pip 有自己的blender
安装,我得到:
>>> from ase.build import molecule
>>> from batoms import render
>>> atoms = molecule("H2O")
>>> render_input = {"viewport": [1, 1, 0], "engine": "cycles", "output": "h2o.png",}
>>> render(atoms, render_input=render_input)
sh: 1: blender: not found
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/prokop/.local/lib/python3.10/site-packages/batoms/api/__init__.py", line 21, in render
raise OSError('Command ' + cmd +
OSError: Command blender -b -P /home/prokop/.local/lib/python3.10/site-packages/batoms/api/apirun.py failed with error code 32512
当我将 blender 二进制文件链接~/SW/blender-3.4.1-linux-x64/blender
到系统 PATH 时,出现此错误:
>>> from batoms import render
>>> render(atoms, render_input=render_input)
Blender 3.4.1 (hash 55485cb379f7 built 2022-12-20 00:46:45)
Error: Python: Traceback (most recent call last):
File "/home/prokop/.local/lib/python3.10/site-packages/batoms/api/apirun.py", line 1, in <module>
from batoms.batoms import Batoms
ModuleNotFoundError: No module named 'batoms'
所以我认为我需要的是:
- 要么告诉我搅拌机的版本
batoms
在哪里bpy
- 或安装
batoms
到~/SW/blender-3.4.1-linux-x64/blender
- 也许我可以
blender
从 pipbpy
模块内部链接二进制文件?但我不知道在哪里可以找到它。
但我没有找到任何例子如何做到这一点
我在文档建议使用 anaconda,但我真的不喜欢 anaconda 每次安装新包时都复制 python 环境的做法。我希望将所有内容都放在一个环境中。
答案1
每个 Blender 版本都捆绑了一个 Python(Blender 3.4 的 Python 版本为 3.10.8)。Blender 只有在正确的 Python 版本下才能正常工作。尽管 Blender 可以通过 使用系统 Python 包--python-use-system-env
,但最好不要这样做,以免崩溃。
Beautiful atom 是 Blender 的一个插件。它应该安装在 Blender 的插件文件夹中,并使用 Blender 中捆绑的 Python。但是,beautiful-atoms 的一些高级功能依赖于几个包(例如spglib
,openbabel
),而这些包无法pip
在捆绑的 Python 中正确安装,因此,需要创建一个具有正确版本的 Conda Python 环境来替换捆绑的 Python,然后在此 Conda 环境中安装依赖项。Beautiful-atoms 提供了一个跨平台脚本 install.py 来自动完成安装和默认设置。如果你不想使用 Conda,你可以手动安装它。https://beautiful-atoms.readthedocs.io/en/latest/getting_started/installing/index.html#manual-installation。在这种情况下,像 这样的软件包openbabel
将不会被安装,但是 beautiful-atoms 的大部分功能仍然能够运行。
该模块batoms
是旧版本,不再有效。该bpy
模块也是 Blender 的测试 Python 模块。以下安装不起作用,不建议使用。
pip install bpy
pip install batoms