[BUG] print() output not shown in Textport (even after reinstall, all versions, all systems)

Hi Derivative team,

I’m experiencing a persistent issue on multiple machines and with different TouchDesigner versions (including the latest stable and experimental builds):

Problem

  • The Textport does not display any output from print() commands, whether run from a Script DAT or directly in the Textport.
  • The Python environment within TouchDesigner seems to work (no errors, scripts run), but nothing is output in the Textport when using print().
  • This happens even after completely uninstalling all external Python versions, and with a fresh TouchDesigner install.

Steps to Reproduce

  1. Launch TouchDesigner (tested with versions 2022.33910 and 2023.12370).
  2. Open the Textport (Dialogs > Textport).
  3. Add a Script DAT, put in:
print("HELLO FROM TOUCHDESIGNER")
  1. In the Textport, run:
op('/project1/script1').run()
  1. Expected:
    The string HELLO FROM TOUCHDESIGNER should appear in the Textport.
  2. Actual:
    Nothing appears in the Textport, only:
<td.Run object at 0xXXXXXXXXXXXX>
  1. Even running print("TEST") directly in the Textport does not show anything.

What I’ve Tried

  • Uninstalled all Python versions from Windows.
  • Clean uninstall/reinstall of TouchDesigner (all AppData/ProgramData cleaned).
  • Tested on multiple machines (Windows 11, fully updated).
  • Disabled antivirus and ran as administrator.
  • Tried both stable and experimental builds.
  • Tested both via Textport commands and direct button “Run” in Script DAT.
  • Tried

System : OS Name: Microsoft Windows 11 Famille
OS Version: 10.0.26100 N/A Build 26100
OS Manufacturer: Microsoft Corporation
OS Configuration: Standalone Workstation
OS Build Type: Multiprocessor Free
Processor(s): 1 Processor(s) Installed.
[01]: AMD64 Family 23 Model 96 Stepping 1 AuthenticAMD ~2901 Mhz
BIOS Version: American Megatrends International, LLC. G513IC.329, 01-03-23
Windows Directory: C:\WINDOWS

The Script DAT can’t be ‘run’ directly like a Text DAT. For the Script DAT the python functions are in the docked DAT and the results are output to the Script DAT itself.
See Script DAT - TouchDesigner Documentation and check out the Operator Snippets for Script DAT.

For running a script directly in a DAT, use a Text DAT.