You don’t always even need a lathe, although it helps. If a lathe is available, you make a stub the same diameter as the shaft out of the same material as the wheel, and fit it in the wheel so the surface is flush. (You can use loctite for this.) Centre pop on the join line and then drill through with a drill just under the desired key size. Because the material is the same the drill should not wander, although you do want to use a nice sharp one. That takes most of the material out for the wheel keyway, so knock out the stub and then file it square with a suitable file. It is not difficult to get the keyway square since you have the half hole to guide the file.
For the keyway in the shaft, a mill is nice, but if such is not available it is possible to drill a line of shallow holes along the shaft and then chisel and file the material away to make the keyway. This would be tricky in small sizes, I wouldn’t want to try anything much under 3/16th by this method. Riffles (curved files) are useful if the keyway must be blind at both ends. It can be tricky, but this is how the old millwrights did it. If the keyway runs out to the end of the shaft the same technique as above can be applied in reverse, eg make a collar to fit around the shaft out of the same material and use a drill to remove most of the material.
Anything can be done with hand tools if you are sufficiently desperate. (But power tools are more fun!)
regards
John