|  | 1 |  | 
                          |  | 2 | == Installing sunPy in a python virtual environment == | 
                          |  | 3 |  | 
                          |  | 4 | A python virtual environment on linux or MacOS is a good way to experiment in python without affecting the system setup of python. Modules can be installed | 
                          |  | 5 | aside from the system version. Afterwards, the virtual environment can be deleted. Here, we install sunPy and use it in a simple | 
                          |  | 6 | example. | 
                          |  | 7 |  | 
                          |  | 8 | First, make sure you have a fairly recent version of python. At the bare minimum, make sure it's release 3 or more : | 
                          |  | 9 |  | 
                          |  | 10 | {{{ | 
                          |  | 11 | $ python --version | 
                          |  | 12 | Python 3.9.6 | 
                          |  | 13 | }}} | 
                          |  | 14 |  | 
                          |  | 15 | Note that in order to get python version three, on some systems you may have to use "python3" rather than "python" for all commands. | 
                          |  | 16 |  | 
                          |  | 17 | First, build a virtual environment in an appropriately name directory and enter into it by sourcing the activation file : | 
                          |  | 18 |  | 
                          |  | 19 | {{{ | 
                          |  | 20 | $ python -m venv /home/oien/johnBsunPy | 
                          |  | 21 | $ source /home/oien/johnBsunPy/bin/activate | 
                          |  | 22 | }}} | 
                          |  | 23 |  | 
                          |  | 24 | At this point the system prompt will change to reflect the fact that you're in the virtual environment. | 
                          |  | 25 | To be sure you're in the virtual environment, check that the virtual environment versions of python and pip | 
                          |  | 26 | are being used : | 
                          |  | 27 |  | 
                          |  | 28 | {{{ | 
                          |  | 29 | (johnBsunPy) $ which python | 
                          |  | 30 | /home/oien/johnBsunPy/bin/python | 
                          |  | 31 | (johnBsunPy) $ which pip | 
                          |  | 32 | /home/oien/johnBsunPy/bin/pip | 
                          |  | 33 | }}} | 
                          |  | 34 |  | 
                          |  | 35 | That looks good. Now upgrade pip to the latest version, and install sunPy : | 
                          |  | 36 |  | 
                          |  | 37 | {{{ | 
                          |  | 38 | (johnBsunPy) $ pip install --upgrade pip | 
                          |  | 39 | (johnBsunPy) $ pip install sunpy[all] | 
                          |  | 40 | }}} | 
                          |  | 41 |  | 
                          |  | 42 | You can now use sunPy in the virtual environment : | 
                          |  | 43 |  | 
                          |  | 44 | {{{ | 
                          |  | 45 | (johnBsunPy) $ python | 
                          |  | 46 | Python 3.9.6 (default, Jun 30 2021, 10:22:16) | 
                          |  | 47 | [GCC 11.1.0] on linux | 
                          |  | 48 | Type "help", "copyright", "credits" or "license" for more information. | 
                          |  | 49 | >>> from sunpy.net import Fido, attrs as a | 
                          |  | 50 | >>> result = Fido.search(a.Time('2021/02/02 16:00:00', '2021/02/02 16:30:00'), a.Instrument('big bear'), a.Physobs('intensity')) | 
                          |  | 51 | >>> print(result.show("Provider","Source","fileurl")) | 
                          |  | 52 | Results from 1 Provider: | 
                          |  | 53 |  | 
                          |  | 54 | 14 Results from the VSOClient: | 
                          |  | 55 | Provider Source                               fileurl | 
                          |  | 56 | -------- ------ ------------------------------------------------------------------- | 
                          |  | 57 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202160950Bh.fits.fz | 
                          |  | 58 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202161050Bh.fits.fz | 
                          |  | 59 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202161450Bh.fits.fz | 
                          |  | 60 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202161650Bh.fits.fz | 
                          |  | 61 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202161750Bh.fits.fz | 
                          |  | 62 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202161850Bh.fits.fz | 
                          |  | 63 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202161950Bh.fits.fz | 
                          |  | 64 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202162050Bh.fits.fz | 
                          |  | 65 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202162150Bh.fits.fz | 
                          |  | 66 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202162250Bh.fits.fz | 
                          |  | 67 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202162350Bh.fits.fz | 
                          |  | 68 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202162450Bh.fits.fz | 
                          |  | 69 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202162650Bh.fits.fz | 
                          |  | 70 | NSO   GONG ftp://gong2.nso.edu/HA/haf/202102/20210202/20210202162750Bh.fits.fz | 
                          |  | 71 |  | 
                          |  | 72 | >>> exit() | 
                          |  | 73 |  | 
                          |  | 74 | }}} | 
                          |  | 75 |  | 
                          |  | 76 | You can leave the virtual environment with the "deactivate" command at the linux command line prompt, at which point your prompt will change back : | 
                          |  | 77 |  | 
                          |  | 78 | {{{ | 
                          |  | 79 | (johnBsunPy) $ deactivate | 
                          |  | 80 | $ | 
                          |  | 81 | }}} | 
                          |  | 82 |  |