There are two common ways to add eyes to a head. First I'll describe how I do it when the eyes are meshes that are part of the head object:
Here is a head, consisting of 1 object. The object consists of two meshes, that I nickname half-a-head and left-eye:
Only half a head because I'm mirroring to save effort. They eyeball is a simple sphere ...
As Allen Simpson said, weight painting and vertex groups are the same thing. Weight painting only gives your more flexibility and usability, but the same functionality is available from the vertex menu. (see 'weight' slider to assign values other than 1)
The solution would be to enable the Paint Mask M and select only what you want to be able to paint. This ...
The problem is the flipped normals,before assigning the bones to the mesh ,just go into edit mode and select all vertices with A then press Shift + N then do the automatic weight
When the normals are on the wrong side you will see the darker color in the shading mode
You can use the info panel in blender to quickly find the python commands. If you cannot find the info panel, it is on the bottom left on scripting tab. It logs out every action you perform.
Do it manually and find whats logged there. I got bpy.ops.paint.weight_from_bones(type='AUTOMATIC').
Hope this helps
Go to edit mode, select the desired vertices, go to properties window, Vertex Groups tab (green vertices triangle), select the desired vertex group, choose the weight value (default 1.0 in your example) and click the "assign" button.