如何在标准python控制台中访问BPY? BPY是Blender-python -thing

时间:2012-06-10 21:53:56

标签: python blender

作者here在17.20-17.50点提到您将来可以使用标准Python解释器访问BPY。它已经有1年了,那么如何使用标准的python控制台访问BPY?

  

试用0:roundaround -solution不能与Blender中的子进程一起使用

subprocess.call(['vim', 'test.py'])
# some editing of BPY -file with Vim (not working currently)
subprocess.call(['python', 'test.py'])  
# trying to execute the python -file (not working currently)
     

试用1:不在Blender外工作

$ cat cubes.py 
import bpy

mylayers = [False]*20
mylayers[0] = True
add_cube = bpy.ops.mesh.primitive_cube_add
for index in range(0, 5):
    add_cube(location=(index*3, 0, 0), layers=mylayers)
$ python cubes.py 
Traceback (most recent call last):
  File "cubes.py", line 1, in <module>
    import bpy
ImportError: No module named bpy

8 个答案:

答案 0 :(得分:14)

基于these instructions

获取blender源代码:

cd ~/src # or what you prefer
git clone http://git.blender.org/blender.git

cd blender
git submodule update --init --recursive
git submodule foreach git checkout master
git submodule foreach git pull --rebase origin master

注意依赖关系,请参阅例如如有必要here * 并通过bpy目标进行编译:

cd ~/src/blender
make bpy
如果出现file INSTALL cannot set permissions on [...]之类的错误

,则

(重新)以root身份运行后者

你的python 3 现在应该能够import bpy


* 对于Debian-ish系统运行

sudo apt-get install subversion build-essential gettext \
 libxi-dev libsndfile1-dev \
 libpng12-dev libjpeg-dev libfftw3-dev \
 libopenexr-dev libopenjpeg-dev \
 libopenal-dev libalut-dev libvorbis-dev \
 libglu1-mesa-dev libsdl1.2-dev libfreetype6-dev \
 libtiff4-dev libavdevice-dev \
 libavformat-dev libavutil-dev libavcodec-dev libjack-dev \
 libswscale-dev libx264-dev libmp3lame-dev python3.2-dev \
 libspnav-dev libtheora-dev libjack-dev libglew1.6-dev

答案 1 :(得分:8)

如果这仍然相关,你可以像这样在blender的上下文中运行一个脚本(-b使它无头,所以你可以在没有X11的渲染服务器上运行它):

blender -b -P script.py

有关更多选项,请参阅blender --help

如果你想将blender连接到IPython控制台,那么你可以通过python与blender进行交互,你可以使用我刚写的这个脚本:https://github.com/panzi/blender_ipython

启动笔记本:

./blender_ipython.py notebook

启动Qt控制台:

./blender_ipython.py qtconsole

答案 2 :(得分:3)

我使用eclipse在搅拌机中开发。我找到了一个很好的起点 http://airplanes3d.net/pydev-000_e.xml

答案 3 :(得分:1)

本文解释了如何将blender构建为python模块。

http://wiki.blender.org/index.php/User%3aIdeasman42/BlenderAsPyModule

似乎这种技术不会将外部python会话连接到常规blender进程,而是在python进程内运行blender。

答案 4 :(得分:0)

在您在该时间段内发布的视频链接中,没有提及使用标准python解释器运行独立的blender python脚本。你在视频中看到的是他们拉开了Blender内置的解释器的交互式控制台。

Blender需要自己的捆绑python环境,如果您打算尝试使用标准python解释器运行脚本,则必须设置环境以包含blender包中的所有包。虽然看起来它可能甚至不可能,因为我认为Blender的python被修改了。

blender可执行文件似乎允许您通过以下方式运行python脚本:
/path/to/blender -P cubes.py

您还可以通过以下方式从bash shell启动交互式控制台:
/path/to/blender --python-console

答案 5 :(得分:0)

我是编程新手,但我找到了一个简单的解决方法,我使用命令行为终端使用操作系统。我的程序看起来有点像这样。

import os
os.system("cd /home/")

(这是我的搅拌机所在的位置)

然后我使用了终端命令,就像我使用cd一样。

https://docs.blender.org/manual/en/dev/render/workflows/command_line.html

答案 6 :(得分:0)

有人创建了存根API生成器。他甚至在Github上托管了生成的bpy,用于Blender版本2.78、2.79、2.80。您在IDE中编写代码就足够了,例如PyCharm。我在生成的代码中发现了一些语法错误。您必须修复它们。也有一个文件。

https://github.com/nutti/fake-bpy-module/tree/master/premade_modules/2.79

如果Nutti的文档太短,这里是安装说明的网站。

https://b3d.interplanety.org/en/using-external-ide-pycharm-for-writing-blender-scripts/

要运行该代码,必须使用其他答案已经指出的Blender Python。

blender -b -P script.py

对不起,关于仅链接的答案。

答案 7 :(得分:0)

您可以在Blender的文本编辑器中运行任何脚本脚本,并在Blender的python控制台中对其进行调试,方法如下:

1。创建您的脚本文件并放置您的代码。

  1. 在搅拌器中打开控制台python并输入: bpy.data.texts[INDEX_OF_YOUR_FILE].as_module()

    INDEX_OF_YOUR_FILE是下拉菜单中文件的索引 文本编辑器中的文本列表。