In order to use an Edison's interfaces (I2C, SPI, UART, etc), the muxes should be configured first. According to your description, the Python script is not configuring the muxes properly. If that Python script is generic (I mean, not written for Edison) then it isn't configuring the muxes and the I2C interface is not set up.
On the other hand, the Arduino sketch works because the I2C is configured through the Arduino IDE. For Python scripts I recommend you to use the MRAA library which was made to use the Edison's interfaces and the mux configuration is made transparently for the user, like the Arduino IDE does: intel-iot-devkit/mraa · GitHub