Hi Dynamo Team (or everyone),
In all versions before Revit 2025, the Python node in Dynamo worked without any issues — it automatically included the IronPython standard library, so modules like traceback could be imported without manually editing sys.path.
However, in Revit 2025, I noticed that the folder name for the IronPython standard library was changed from:
IronPython.StdLib.2.7.9 to Lib
But the Python node still tries to import from the old path (IronPython.StdLib.2.7.9). I checked sys.path during runtime, and it still contains the outdated folder name, which no longer exists. As a result, importing standard modules fails unless I manually add the new Lib path.
I would like to confirm:
- Is this an intended change?
- If not, can this be considered a bug in the path configuration for the Python node in Revit 2025?
Hi,
an issue has been reported.
However, I strongly advise you to migrate to Ironpython3 or PythonNet3 from Revit 2025+ (Net Core) onwards.
3 Likes
Hi,
Thank you very much for your response.
this does seem to be a bug. I’m currently using the same approach: locating the standard library directory via the application domain and manually adding it to sys.path.
It looks like the Dynamo team may not plan to fix this behavior anytime soon.
Also, I totally agree with your opinion — I would really like to switch to PythonNet 3.
But in my case, since I need to support multiple Revit versions at the same time, it’s not a very practical option for now.
Anyway, I truly appreciate your detailed and helpful answer. Thanks again!
1 Like
I understand, but It is by no means certain that IronPython 2.7 will support .NET 9 and beyond. The IronPython team is now focusing on IronPython 3.
In my opinion, Revit 2025 and NetCore have established a new cycle, so it’s a good time to migrate with new, updated scripts (with a preference for PythonNet3).
1 Like
I’ll come out and say it directly. IronPython2 is not supported at this time, and hasn’t been so since Dynamo 2.8 - meaning since Revit 2022’s initial release. The IronPython2 package has always been intended as a temporary measure to give us (graph, script, and package authors) time to upgrade.
The stopgap nature of the package means that eventually we will all have to update, which sounds worse than it is. You’ll learn a few things along the way and come out the other side a better code author.
This doesn’t mean you have to ‘go back and change’ what your team is running right now. But it does mean that you should have stoped writing any code in IronPython2 and do all new work in a supported engine. Yes, this means that ‘new stuff’ will not work all the way back, but CPython will run in ALL supported Revit releases, so start there and then look to IronPython3 when you must.
1 Like