I’m testing to integrate TDPyEnvmanager into our projects.
(Caveat: I think I read all documentation, but it could very well be I missed something)
First: I fully endorse & applaud this project, as we’ve been managing various self-built solutions over many years, and a single streamlined approach for all would be very welcome.
Some thoughts:
-
default venv name
I would recommend to make the default venv name something short and the same for each project, because the venv often needs to be started from console (usually on projects we have standalone python apps running alongside TD). And when I’m working in project “MyProjectName” there is no need to repeat that projectname for any folders inside that project.
So I have an RFE to make the default venv name.venvinstead ofMyProjectName_vEnv
(also.venvis the same default name as uv uses, which would help while moving between different projects during the day) -
pyproject.toml
since PEP 518(2016), 517(2017) and specially PEP 621 (2020) the standard on which we are converging is a singlepyproject.tomlfile which replaces many different files (like setup.py, requirements.txt, pytest.ini, .pytest-version)
So why not generate a (or add to an existing)pyproject.tomlfile by default, instead of adding another new specs file (TDPyEnvManagerContext.yaml) to our projects.
I would strongly prefer a single file as the single source of truth for all my TD/python project specs.
Also currently when I have all the TDPyEnvmanager settings already in mypyproject.tomlunder[tool.touchdesigner.TDPyEnvManagerContext], TD will still always auto-create a newTDPyEnvManagerContext.yamlfile on TD startup, which seems unnecessary and is confusing - because which file is the source of truth now? -
uv
We, and a very large part of the Python community (projects like FastAPI, Pydantic, Hugging Face, Jupyter, Rye, Polars) have moved to uv since a long time, as the speed difference of the uv package solver / installer / venv manager compared to pip and others is just not funny anymore. And even though uv was started by commercial company Astral, it’s a fully open source project(currently more than 500 contributors) with Apache2 and MIT licenses, so uv will not go away, no matter what its founding company does. It would be very much appreciated if uv becomes a firstclass bundled member of TDPyEnvmanager/TouchDesigner. -
auto creation of venv on start
(this is linked to the pyproject.toml / uv RFE’s above).
The auto creation & initialization of a preconfigured venv on TD project start is an awesome idea.
Implementation would be really streamlined if it could use our project requirements in pyproject.toml (at least I could not manage making this work - it seems this only works when adding a separate requirements.txt file). If this worked we would only have to maintain one file (single source of truth for da win!). And then if TD could use uv to auto create & populate the venv it would be a lot faster to startup as well.
last nitpick: As we are already in TD Python land, would it not be easier to talk about this software if we called it simply VenvManager instead of TDPyEnvmanager ![]()
Thanks! Idzard