It's not necessary but there is no reason not to.
Pros:
- production and development programs are more similar
- upgrading your base image won't affect your python packages
- you can use multi stage builds to create drastically smaller final images
Cons:
- you have to type
venv/bin/python3
instead of justpython3
in the run line of your dockerfile