La manera más sencilla de hacer esto es utilizar la referencia lineal métodos con bien formada.
from shapely.geometry import LineString, Point
# Example data
busRoute = LineString([(80, 380), (160, 380), (220, 370), (280, 330), (310, 210), (379, 185)])
currentLocation = Point(280, 350)
# The current location is not exactly on the bus route
print(busRoute.distance(currentLocation)) # 16.6410058868
# Distance along line to nearest projected point, from start
print(busRoute.project(currentLocation)) # 201.8446468877574
# .. and distance from end .. I think this is ultimately what you are looking for
print(busRoute.length - busRoute.project(currentLocation)) # 208.17654522066948
# and the point that is used, which is on the busRoute
print(busRoute.interpolate(busRoute.project(currentLocation)).wkt)
# POINT (270.7692307692307700 336.1538461538461900)