K-Means deals with numerical data and in K-Modes, it uses a simple matching dissimilarity measure to deal with the categorical instances replacing the means of clusters with modes, and uses a frequency-based method to update those modes which are in the clustering process to minimize the clustering cost function.
If you want to stick with a K-Means variant you should check out the K-Prototypes algorithm which integrates the K-Means and K-Modes to allow for clustering instances described by mixed numeric and categorical attributes.
If a categorical variable is ordinal, you may try using it in the clustering algorithm as if it is numerical. If the variable is nominal, you have to create a binary variable for each category (=1 if the category is present, =0 if the category is absent). You may also have to standardize all the variables (to mean = 0 and variance = 1) before running the cluster analysis.
If you wish to know more about K-means clustering then visit this k-means Clustering Algorithm in Python.