New Dynamo with Python 3, but packages use old python

I think I successfully re-created a dyn file with he appropriate packages. But the packages seem to use the old Python, while my dynamo (from Revit 2023) uses the newer version. I get the below error.

The packages are springs, archilab etc. Does that meant he packages are just outdated? I installed them with the package manager. I’m not quite sure how to install old Python, but that also may bite me when packages uses current Python. Is this a typical problem with Dynamo that when Dynamo updates, some packages wont’ work anymore? i assume not every package developer will re-write their nodes immediately after there is a new Dynamo/Python.

Am I missing something? It looks like to be able to use future Revit (and Dynamo) versions without having to re-do dyn files (and hoping for updated nodes) i woudl be limited to the oob nodes.

image

You can install the IronPython custom package. It is highly unlikely many package authors will come back and switch their packages to CPython3, especially because it isn’t available in earlier Revit builds their packages still support.

Think we need a stickied thread about this, there’s going to be a lot of these over the years.

5 Likes

Thanks for the reply. This may be a stupid question, but shouldn’t a version 3 be somewhat backwards compatible with older versions? Should I be able to have Ironpython 2 AND also IronPython 3 installed at the same time?

I have Dynamoironpython 2.7 installed. And the explanation says this should enable Ironpython2. But look at the error, it still complains about not having IP2.

is there something else i need to install?

Unfortunately that message will show up until you say dont show this again. This is an elective decision by the developers due to security issues with ironpython2 and the fact cpython3 is more modern/supported.

If i recall correctly cpython3 was added to dynamo since 2021.1 of revit, but old builds of dynamo were not updated with this (e.g. revit 2020 and prior). Again, an intentional decision by the developers.

Given many firms are stuck in old revit builds still most package devs choose to work with ironpython2 for now. The users have to sort out all the gymnastics this brings unfortunately.

Is what it is.

Thanks for the explanation. But good news, my dyn file now works and the nodes seem to work the correct (outdated) Python.

Since I now have Python 2.7, do I also have the 3.x Python (for newer nodes that may use Python 3)?

As far as I know most main packages are still hanging around in 2.7 for now, given it only works in 2021 onwards, but yes it packages happen to support cpython3 then they should work as is

1 Like

So that means if I remove the Python 3, the outdated nodes will work. I am getting the same error running my script.

You can’t remove CPython3, however you can (re-) install IronPyton 2.7 via the packages manager. This will allow older packages to run successfully

image

1 Like