如何在Linux上安装bpy模块?

1 投票
1 回答
103 浏览
提问于 2025-04-14 18:05

我在CentOS7的Linux系统上设置了一个conda环境,使用的是Python 3.10版本。

我想把bpy 3.6.0模块下载到我的Python环境里,但遇到了错误,显示的信息是这样的:

ERROR: Ignored the following versions that require a different python version: 2.82.1 
Requires-Python >=3.7, <3.8 ERROR: Could not find a version that satisfies the requirement bpy==3.6.0 (from versions: 3.4.0) 
ERROR: No matching distribution found for bpy==3.6.0

我不太明白这个错误的意思,网上搜索也没找到有用的信息。我需要单独安装Blender吗?我确实安装了Blender,但版本是3.3,并且已经添加到PATH里了。

有没有人知道怎么把bpy作为模块下载呢?

我需要3.6.0版本来运行与这个版本兼容的代码,我不能降级。

我只是尝试了用pip安装,但没有成功。

我在网上查找过这个问题,但没有找到相关的信息。虽然我承认我对要求部分的内容理解得不太清楚,尤其是在bpy 3.6.0的安装说明里。

谢谢!

1 个回答

1

BPY只能在Blender内部运行——Blender这个程序会启动一个Python解释器,而BPY的核心功能可以操作Blender内部的数据结构,并调用各种API。

这意味着bpy不能在独立的Python解释器中使用——只能在Blender内部启动的Python解释器中使用(当Blender运行时,这个解释器会自动启动)。

不过,有一种方法可以启动一个无头(没有窗口)的Blender进程,直接运行Python脚本,并通过bpy模块访问Blender的API。你可以在命令行中输入blender --background --python myscript.py来实现,而不是python myscript.pyBlender的命令行选项可以在这里查看)。

换句话说:以这种方式调用Blender会初始化Blender及其所需的所有数据结构,然后Blender会启动一个带有bpy模块的Python解释器。

在Blender内部使用的Python解释器中安装第三方Python模块是可以的,但需要小心操作。

一些打包Blender的Linux发行版会使用系统的Python,因此通过发行版的包管理器安装的任何Python包都可以在Blender内部的脚本中使用(例如,在RedHat系统中使用dnf install python3-requests而不是pip install requests)。

否则,从Blender.org下载的Blender版本会自带自己的Python环境,所以如果你的Blender解压在一个叫blender-3.6.0-linux-x64的目录下(或者你解压时得到的任何目录名),你可以通过输入blender-3.6.0-linux-x64/3.6/python/bin/python3.11 -m pip来运行自带的"pip"工具。这个pip可以在Blender的本地安装中安装Python包,这些包会在你的脚本中可用。(注意,3.6和3.11是Blender和Python的版本号,可能会有所变化——所以你的Blender可能是python3.10或python3.12,只需检查[install]/3.6/python/bin文件夹中存在的文件即可。)

更新 在上面链接的Blender页面的最后提到,Blender本身可以被构建为一个Python模块——这样bpy就可以直接从Python解释器运行。但你需要按照那里的说明自己构建Blender。

撰写回答