I am glad you are taking the time to show you are not limited to just the Blender editor to create scripts! This is a big help for people and will speed up the scripting process!
for those installing VS Code take note that Microsoft made a mistake and inverted the User and Systemwide installers. Use the Systemwide installer as the User installer.
whoops you failed to mention that you need to install pip first. or else it is not recognized. Overall excellent guide on how to setup this stuff amazing thank you so much!
Hi, im a complete noob in the addon creation.Thank you for your tutorials, they're very helpful in learning scripting for blender. I've been working on an addon and i have decided to use VSC as my IDE. I've noticed that as i try to run the addon from VSC, Blender doesn't seem to add the panel into the region. The same code run from built-in blender script editor works without any problems. Is there any known cause for this issue?
Do you have the 'bl_info' dictionary at the top of the file? For example: bl_info = { "name": "My Custom Panel", "author": "Victor Stepanov", "version": (0, 0, 1), "blender": (2, 80, 0), "location": "3D Viewport > Sidebar > My Custom Panel category", "description": "My custom operator buttons", "category": "Development", }
I submitted a fix proposal to the primary Blender Development's extension to fix this: github.com/JacquesLucke/blender_vscode/pull/154 Hopefully, we can ship this fix soon after Jacques reviews this change. The latest version of the extension fork already has this fix (if you are blocked and need this ASAP, you can use that) marketplace.visualstudio.com/items?itemName=cgpython.blender-development-experimental-fork
@@CGPython Blocked? Btw, yeah, I saw there was an update and didn't see it on VSCode, so I downloaded the experimental branch, I forgot I made this comment, and just updated as you put the heart xD. Thx anyway, this can help if someone has the same problem ^^
At 8:21, after doing the necessary steps I get the error in VScode "no workspace folder found". This error occurs after I do CTRL + SHIFT + P --> Blender: Start --> {path}.blender.exe. Any idea how solve this? Edit: solved problem by first doing: Blender: new script and then paste the contents of my script in that script. Then Blender: Start booted up Blender
I encountered some troubles for which I thought I should reinstall the fake-bpy-module. However, since then I got certain problems. When I create an addon, the program cannot find it. Thereafter, Blender cannot be opened. It says that it cannot create a file when that file already exists and the terminal will be reused by tasks. I think the fake-bpy-module stores the files in the wrong place? It would be amazing if you could help me
Hello, Sure! I would need some more info to be able to help. What Blender version are you using? How are you creating your add-on? Can you try to follow this video to create an add-on and try to use VSCode with it ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Qyy_6N3JV3k.html Note: this ^ add-on will work in Blender 4.1, there were some updates done in 4.2 that changes the process of creating an add-on extension.
Are you using a separate folder with __init__.py for your add-on? Where is the xxxxx module located? Are you using "Run Script" or just "Blender: start" ?
the problem am facin is how to separate system python of blender python. or how to change interpreter without getting conflicts. I start getting this issues just recently on win 11
Hey I need an advice I want to do a project where i can extract features from a image using machine learning and put it on my blender model Eg:consider a cloth 3d model and now adding color i want to extract it froma image and put it on my cloth model can i do it?
You would need to create an image of what you want to put on the model. Load that texture in blender and then do a UV unwrap. See 10 minutes in to this video ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-aSkgwf0SX_k.htmlsi=-eLBlRpY0V7S590r
when I go to download python 3.10.13 (the version that appears in the blender 4.0 console), there is no option to download it for windows, would it be a problem to use a newer version?
@CGPython thanks for letting me know...since I use Adobe if you find a link of how I can CC a website if you can post it here......I couldn't find one...and since there seems to be no way to move a preferences window to the center of the screen when you make a show user preferences function for your addon....so it looks nice...can u make a tutorial. On how I can split view3d and open user pref in the left hand pane and figure out a nice system for the end user to close this new split pane....like a button that joins the panes. Or better...seems to be the only workaround...for a nice ui that displays windows to end users
I was struggling so hard of using VSC with blender that i gave up and was using the text editor by default. F but with this vid you helped me to solve the problems i had Thanks u so much
Great tutorial, but, despite following meticulously your 5 steps, I always encounter following attribute error: import bpy obj = bpy.context.object Exception has occurred: AttributeError module 'bpy' has no attribute 'context' File "H:\Stoommachine\Cornish\ThomaShaftProject\Scripting\context.py", line 3, in obj = bpy.context.object ^^^^^^^^^^^ AttributeError: module 'bpy' has no attribute 'context' When executed directly in Blender 4.1, this error does not occur. What went wrong? Thanks in advance Guy
@@CGPython Thanks for your answer. I copied your script, and launched "run and debug", and receive following error message at line 3: Exception has occurred: AttributeError module 'bpy' has no attribute 'ops' File "H:\Stoommachine\Corliss\3D_Model\Scripts\TomShaftScripts\Scripting\import bpy.py", line 3, in bpy.ops.mesh.primitive_cube_add() ^^^^^^^ AttributeError: module 'bpy' has no attribute 'ops'
I am a newbie. Sorry to bother, but I set up Python 3.11 plus VSCode and I get this error when trying to install the fake_bpy_module: Loading configuration.... Done loading configuration Checking for valid pip.... WARNING Python not found for [PythonPath: [none] | EnvName: [none] | PathToEnvs: [none]]; this environment will be ignored Done checking for valid pip Setting up specified environments.... ERROR no valid environments exist! Update aborted. ***UPDATE FAILED TO COMPLETE*** Python 3.11 is in the system path. Any suggestions would be helpful. Thank you!
How did you install Python 3.11? You might have installed it via the Windows store stackoverflow.com/a/58773979 double check where the Python.exe is located by running this: where python in your Command Prompt
@@CGPython It took a few days, but I figured it out. Once I set up an environment with venv, pip starting working. I also downloaded conda. I like conda better so far, but I haven't enough experience to really argue the point. The conda syntax seems a bit simpler. Thanks for looking into it.
It finally worked. Wonder what I was doing wrong earlier. Many Many Thanks. Now a request - Could you please show how to add a Folder that has multiple folders with code. Each folder with its own class and utilities. I need to add the folder and Debug on the Press of a button. Could you please help.
Its a great workflow, but sadly it does not work well with Extensions in Blender 4.2 Beta. Does anybody have a workflow already for developing blender Extensions instead of Addons. Right now the vscode Blender Development Plugin will add the Extension as an additional Addon so it gets loaded twice.
I'm having an issue where for some reason creating panels will not appear when trying to run script from VSC. I can spawn in a cube and move it just fine, but panels will not run. If I copy the code to Blenders text editor and run it it will work. To make sure the panel script from VSC is working I added "bpy.ops.mesh.primitive_cube_add" and it still spawns in a cube
I think you need to convert your add-on into a folder + __init__.py file I explain this here github.com/JacquesLucke/blender_vscode/issues/134#issuecomment-1626898526 let me know if this does not make sense.
@@CGPython it actually ended up being something to do with the extension install or something. I've installed Python and the extension in the past but never did anything with it so I reinstalled everything and it started working. Thanks for the help though.
Thank you for the video, for import bpy I am not getting error but if I write from bpy.types import Operator I get error ImportError: cannot import name 'Operator' from 'bpy.types' (unknown location). (Please note I followed fake bpy installation video properly, even referred similar videos on Ytube). Any hint will help.
I think you are running the script using the Python that you installed on Windows. This Python is only there to help with syntax highlighting and auto-complete. You need to run the script by starting Blender and then calling "Run Script" from the command pallet.
Great video and explanation of steps. Well done. My question is about why people prefer this over editing in Blender itself. Totally get that VS code is a wayyy better editor and has git integration and all that stuff, but the first impression I get from doing it this way is that it's a bit.. clumsy? Having to start Blender specifically from the extension, then Shift-Alt-P → blender run script every time, and switching back and for between VS code and blender constantly really got to me after a while. I'm just starting out, so maybe I just need more time with this method, but seeing things in one place - the repl console, editor, viewport, and info panel - felt really nice and I missed that. What are you thoughts about that?
Thanks! Great question! I agree that the workflow is not as smooth as it would be if you were working in Blender's script editor. I actually got annoyed with this and made an and-on to auto-reload/rerun my code when I save the code ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-t3YWMAJURIw.html VSCode also gives a lot of features that the Blender devs will probably never add: debugging autocomplete advanced syntax highlighting AI assistant integrations ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-rGSWz1SL16Y.html and other things a dedicated IDE is great at Every feature in Blender requires maintenance and support. I think it would benefit more people if the Blender developers worked on cool new features in the renders, animation workflows, particle system workflows, and geo nodes rather than spending time improving the script editor.
@@CGPython Thanks for that thoughtful response, I'll have a look at those other videos of yours and give it some more time. Also simply having Blender available on another screen may make things feel a little more connected.
@@CGPython I found a setting in the Blender Development VS Code extension called Reload On Save. And I totally agree that the blender devs should really focus on the core product and not the script editor!
This is exactly what I needed, thank you. :) I'm familiar with VS Code, Blender and Python, but it's hard to know how to get all of the pieces to play nicely together. Thank you!
amazing tutorial. I am a bit dumb though, it all works, but when I press run code in vscode (ive done Blender: run script properly) it gives ModuleNotFoundError for the blender specific imports like bpy
Thank you! The catch here is that you can't run these Blender Python scripts as you would run the regular Python scripts that don't use `bpy`. You can only run them in Blender. This is done by selecting the `Blender: Run Script` command from the VSCode command palette.
I get an error message "The file can not be accessed by the system" when trying to start the Blender app( C:\Users\USER\AppData\Local\Microsoft\WindowsApps\blender-launcher.exe) from VS Code. I am using Windows 10.
This runs the Blender python interpreter. The extension installs an operator that allows VSCode to send messages to the running operator inside of Blender
Thanks for the tutorial! I was wondering if it is possible to run other libraries, such as pandas, numpy etc in VS code. Been trying to do it directly in Blender, but it does not work :/
Are you talking about creating Blender Python scripts that use numpy and pandas? numpy is shipped with Blender, so you can just import numpy in your Blender scripts With pandas you will need to install it into Blender's built-in Python interpreter.
Hey! PyCharm is a great editor as well! I think this is what you would need to use github.com/BlackStartx/PyCharm-Blender-Plugin b3d.interplanety.org/en/using-external-ide-pycharm-for-writing-blender-scripts/
I've been using this setup for a week, and I noticed that if the script is written like def main(): ... if __name__ == "__main__" main() then the "Blender: Run script" command won't run main(). Is it possible to make it work?
Yeah, I also ran into that but never took the time to dig into the root cause of the issue. (I would just workaround the issue...) I just did some digging and published a potential fix to the fork I made of the Blender Development extension by Jacques Lucke. marketplace.visualstudio.com/items?itemName=CGPython.blender-development-experimental-fork You would need to disable the original Blender Development extension in VSCode before installing the fork. If this works for everyone, I'll create a pull request for the original extension.
Hello! Blender 4.0 just released - would you kindly do a video on how to get it to work for this? Unfortunately it does not seem to work straight of the box!
I submitted a fix proposal to the primary Blender Development's extension to fix this: github.com/JacquesLucke/blender_vscode/pull/154 Hopefully, we can ship this fix soon after Jacques reviews this change. The latest version of the extension fork already has this fix (if you are blocked and need this ASAP, you can use that) marketplace.visualstudio.com/items?itemName=cgpython.blender-development-experimental-fork
Thank you for this. I know this is a python for blender channel but, is there any chance you might teach us how to do stuff in c++ to make changes to blender itself?
I might touch the Python API bindings in C++ but that would be as far as I like to go on this channel. I have seen a number of great talks on that subject ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-gSIgW_N7o3U.html ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-OxwrSdt6I4w.html Also there are great articles like this aras-p.info/blog/2022/02/03/Speeding-up-Blender-.obj-export/
Please help me! I'm a total beginner and i'm lost! I wnet through your video and everything is ok, the cube is moving etc. But, i want to use this for different things and that is not working. A similar example is in the Blender scripting workspace, there are templates, and there are a UI template python file. If i copy that into Visual Studio and run, it is not doing it's thing, just nothing. If i run it in Blender, it works. So what's the problem? Why these UI example files do not work in VS? I really badly need that :(
Hey! You need to creat a new folder and a __init__.py for this and add bl_info dictionary at the top of the script. Basically you need to create an add-on. I’ll make a shot this week on this topic. Take a look at the end of this video Exploring the Pie Menu Template in Blender with Python ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-zAMVFPr8ZIE.html
You can see the print() output in the "Terminal" panel (at the bottom of VSCode). If you don't see the "Terminal" panel, you can open it via View >Terminal.
This is what I was looking for, but there is one problem. In order to make the script work I need to put the code in the Blender editor. If the files in VSCode are not the same as the code in Blender editor, the script will not run.
@@CGPython hi, is still me, @thenewnpc with another account. I found out that if we write python for Blender in VS Code we cannot import other files/modules as text blocks, configs = bpy.data.texts["configs.py"].as_module(), because that is syntax for Blender Text Editor that declares files as text blocks. And that is why I was getting that error, it couldn't find the modules imported like that. So naturally when I copied the code inside Blender Text Editor it worked again because the syntax was accepted by the interpreter/ compiler...whatever. Bottom line, when writing python for Blender externally, ex: VS Code, we can use normal python imports, "from file import some_method".
yes i did it ! But i think there is something good to mention If you try to run the script from F5 or the menu start debugging to run the script - fails always have to ctrl+shif+p + run script to run . it took me a long to figure it out and I was ready to give up
This is a good point! ❤️ I sometimes find myself pressing that out of habit 🙃 I have an add-on that I use that runs my scripts on save. I'm planning to do a tutorial at some point about it.
@@CGPython at the end of my script i have "if __name__ == "__main__": register()" so that the plugin gets registered when its executed. But if i run it from vscode the plugin isnt registered.
@@robertoalvira626 you should try getting the portable version of Blender for windows. www.blender.org/download/ You can find that download option under the "Mac, Linux, and other versions" drop down
hi i dont know if this is a common problem but i did the pip install for both the latest version and 3.4 and when i type bpy. it doesn't prompt anything in terms of autocomplete. Am i doing it wrong?
@@CGPython same problem for me also, I restarted my vs code, but its not showing bpy module as installed, but when I do ''pip install fake-bpy-module-latest'', its saying requirement already satisfied, can u pls give me a solution
There is a way to install the autocomplete manually. You would download the zip, extract it, and make VSCode use in (via settings) Here is how github.com/nutti/fake-bpy-module/blob/master/docs/setup_visual_studio_code.md
I have completed all the steps in your video (thank you) but I am getting a message after I run the side panel code in vs (You do not have IntelliSense configured. Unless you set your own configurations, IntelliSense may not be functional.) and the side bar does not appear in blender. What compiler should I install?
Hi! Sorry, this isn't working for you out of the box! Did you use the __init__.py file for the side panel code? If the code isn't in a separate folder and isn't in a __init__.py file, this won't work. Something to check: Can you run the side panel code from Blender's text editor to make sure that it works without VSCode? > You do not have IntelliSense configured. Unless you set your own configurations, IntelliSense may not be functional. The Blender Development extension does depend on the C++ extension, but you shouldn't need a C/C++ compiler for this to work.
@@CGPython As I was facing the same issue, and all of IntelliSense's preferences referred to C/C++ programming (it seems to require the presence of a compiler for those languages), I tried installing Visual Studio Community Edition alongside Visual Studio Code, too, only selecting its C/C++ programming components.🤔 Once done, Visual Studio Code's IntelliSense for Python seems to work without any complaint. (Maybe there's a simpler way to do it from inside VSCode itself yet, by installing some C/C++-related Extension? Or through some smallish compiler installer from Microsoft?)
Still so interesting. Thanks for this tutorial. Note: I found a way to make bevels on specified edges. If you're interested, it's at the end of my last tutorial: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-s8Y4AjP9GuU.html
That is cool! 😃 BTW not sure if you saw my last reply (on your question when you were asking about the bevel) with example code gist.github.com/CGArtPython/bc10b8a9b6e4934458bb664d8f45f1e1 I guess you didn't see it 🙂
@@CGPythonyes restarted the vscode, it's showing requirement is already satisfied, blender development run script is working fine in blender, but that auto complete is not showing up in vs code, it behaves like bpy module is not installed
The only thing that comes to mind that might be an issue is that 1 VSCode is out of date 2 The Python VSCode extension is not installed/is out of date 3 The selected Python interpreter (bottom right status bar) is not the Python interpreter where you installed fake-bpy I'm going to guess these ^ are not the issues. There is a way to install the autocomplete manually. You would download the zip, extract it, and make VSCode use in (via settings) Here is how github.com/nutti/fake-bpy-module/blob/master/docs/setup_visual_studio_code.md
@@CGPython I had the same issue and for me it was that I had several Python versions installed and VSCode used the wrong interpreter. If anyone else is having this issue, just type in your terminal (the same terminal where you ran the pip install command for fake-bpy) "which python". It will print the path for the Python used when installing fake-bpy. Next, in VSCode use Ctrl+Shift+P then type in "Select interpreter" and there should be an option there to select Python interpreter, just use the same as was printed when you ran the "which python" command