This is how I do this in my third year course on Lie algebras: Since we may assume that the Killing form $\kappa$ of $\mathfrak g$ is is non-degenerate, we can make use of the direct sum decomposition ${\rm End}({\mathfrak g})= {\rm ad}({\mathfrak g})\oplus M$, where $M=({\rm ad}({\mathfrak g}))^\perp$. The subspace $M$ has the property that $[{\rm ad}({\mathfrak g}),M]\subseteq M$, where the commutator brackets are taken in ${\rm End}({\mathfrak g})=\mathfrak{gl}({\mathfrak g})$. Hence we can write any $D\in{\rm Der}({\mathfrak g})\subset {\rm End}({\mathfrak g})$ as $D={\rm ad}\,x+m$ for some $x\in {\mathfrak g}$ and $m\in M$. For any $y\in{\mathfrak g}$ we then have $[D,{\rm ad}\,y]=[{\rm ad}\,x,{\rm ad}\,y]+[m,{\rm ad}\,y]$. Since $[D,{\rm ad}\,y]={\rm ad}(Dy)\in {\rm ad}({\mathfrak g})$ and $[m,{\rm ad}\,y]\in M$, it follows that $D={\rm ad}\,x$ (one should keep in mind here that the centre of $\mathfrak g$ is trivial). We thus conclude that all derivations of $\mathfrak g$ are inner, and this does not rely on Weyl's theorem on complete reducibility. At this point one can use the fact that the semisimple and nilpotent parts, $D_s$ and $D_n$, of the Jordan decomposition of the endomorphism $D\in\mathfrak{gl}(\mathfrak{g})$ are again derivations of $\mathfrak g$. This is a nice (and elementary) exercise which can be found in Jacobson's book on Lie algebras, and one can replace $\mathfrak g$ by any finite dimensional algebra $A$, not necessarily associative or Lie. By the above, $D_s={\rm ad}\,x_s$ and $D_n={\rm ad}\,x_n$ for some $x_s,x_n\in {\mathfrak g}$ which are uniquely determined since $\mathfrak{z}(\mathfrak{g})=0$. The elements $x_s$ and $x_n$ commute as so do $D_s$ and $D_n$ in $\mathfrak{gl}(\mathfrak{g})$. The fact that the Jordan decomposition exists in $\mathfrak{gl}(V)$ has to be proven, of course.