作者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
答案 0 :(得分:14)
获取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。创建您的脚本文件并放置您的代码。
在搅拌器中打开控制台python并输入:
bpy.data.texts[INDEX_OF_YOUR_FILE].as_module()
。
INDEX_OF_YOUR_FILE是下拉菜单中文件的索引 文本编辑器中的文本列表。