Using proxy from the previous answer will temporarily make things work - if you find a proxy that doesn't timeout, but it's not fixing the problem and using proxy will hamper your download speeds in most cases.
What I've found is that you need to investigate your Python interpreter location and make sure the venv is not causing problems.
For instance, if setuptools won't update then most likely there is already a part of your code or project that is continually using setuptools - prohibiting it from updating - and other packages need new versions of setuptools to install.
For some reason this then causes "ConnectionResetError: An existing connection was forcibly closed by the remote host" to occur for most packages like tensorflow, keras, pandas etc.
Recreating your venv in another empty location will reset any packages
To do this in Pycharm:
File -> SettingsProject: -> Project InterpreterProject Interpreter -> drop down list -> show allRemove your current Python Interpreter locationAdd New Environment
Then you will be asked to put in a location for your project:Using a new location here will solve the [Win10054] ConnectionResetError for package installations.
Base Interpreter : point towards your python.exe location( default usually : C:\Users\UserProfile\AppData\Local\Programs\Python\PythonXX\python.exe and replace XX with your current version and UserProfile with your profile )
Most Important:Because you've setup a new location, install setuptools first, if it's already installed, then upgrade it first.After that you can migrate your code to the new venv and all new packages should work without any connectionResetErrors.