如何在Linux上安装bpy模块?
我在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 个回答
BPY只能在Blender内部运行——Blender这个程序会启动一个Python解释器,而BPY的核心功能可以操作Blender内部的数据结构,并调用各种API。
这意味着bpy
不能在独立的Python解释器中使用——只能在Blender内部启动的Python解释器中使用(当Blender运行时,这个解释器会自动启动)。
不过,有一种方法可以启动一个无头(没有窗口)的Blender进程,直接运行Python脚本,并通过bpy
模块访问Blender的API。你可以在命令行中输入blender --background --python myscript.py
来实现,而不是python myscript.py
(Blender的命令行选项可以在这里查看)。
换句话说:以这种方式调用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。