Hi @AJG
Both the steps would be necessary as the local environment (site_packages) is used when running in the virtualenv and has packages required for local development (and usually for the local OS).
The .python_packages are required for deployment to Azure which is a Linux plan and best to keep it clean with packages listed in requirements.txt
In a scenario where you are using Windows OS locally with C or C++ extension module which has to be built especially for that environment as azure function uses the Linux operating system and the build would be different than the Windows OS build that you are running locally.
If you are already on Linux OS and don't want to do it twice then you can leverage below articles to update the settings/configs to achieve a single folder
https://docs.python.org/3/using/cmdline.html#envvar-PYTHONPATH
https://pip.pypa.io/en/stable/user_guide/#configuration