I've used diatomaceous earth with fairly poor results since it needs to be dry to be effective.. and sticky traps only catch SOME of the adults... The one thing I've found that will kill the adults, larvae and eggs naturally is something called Mosquito Bits... soak the granules according to the directions and use the water to water your plants.... fungus gnats, gone!
Fungus gnats live is very moist/wet soil so if you have a problem with them, it's saying you're keeping your substrate much too wet. Let it dry out completely before watering/feeding again... cannabis requires that wet/dry cycle to perform/grow well.
Good luck...