Python3 is awful as fuck. You can either add an archive member with the write method that takes a file, but then you can't set its zip-related metadata, or use the writestr one, but since it's expecting a str and not bytes, it won't work for binary files.