You can install your requirement without activating virtual environment, but with providing full path to your virtualenv pip.

<path_to_virtualenv>/bin/pip install -U spyder

Because what activate is doing it's putting your virtualenv bin/ folder before the PATH, so that pip, python commands would be references to your viartualenv's before global ones. From source of activate: