Change the permission for i2c
It is very annoying that you have to run your code with sudo to be able to use I2C. You can change it by doing this.
First add your user to i2c group:
sudo adduser pi i2c
then change the udev rules, here I changed rules for all the i2c devices. You have to edit 60-i2c-tools.rules file in your /lib/udev/rules.d/ folder.
sudo nano /lib/udev/rules.d/60-i2c-tools.rules
And change the following from
KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0660"
KERNEL=="i2c-[0-9]*", GROUP="i2c", MODE="0666"
Save the file, type in the command below to reload udev rules.
sudo udevadm control --reload-rules