In OpenSCAD you need to make two cylinders, union them, then make two smaller cylinders, union them, then subtract the smaller from the larger. Using hole (), you can make a pipe, specify that its ...
Both OpenSCAD and pythonscad produce executables named openscad and openscad-python. This makes it very hard (guix) or even impossible (Ubuntu, Debian, Fedora,....probably almost all other Linux ...