ajdawson / windspharm

A Python library for spherical harmonic computations on vector winds.
http://ajdawson.github.io/windspharm
MIT License
82 stars 38 forks source link

Installation problem with pip install #44

Closed jypeter closed 9 years ago

jypeter commented 9 years ago

I have finally been able to install windspharm in both UV-CDAT 1.5.1 and 2.1.0, but it took me quite some time to figure out how to do it :-(

I just typed pip install windspharm, the installation seemed to start, then nothing took place until I typed , and then I got some weird SPHEREPACK license/download errors

I eventually started installing pyspharm first, and typed 'yes' to accept the license+download, and then installed windspharm from the tarball sources

And then I discovered that pip install windspharm worked indeed, when installing windspharm into UV-CDAT versions I had on other servers, but the problem was that the message asking me to type yes or no was not displayed! I found out the hard way I had to use the following steps:

So, my suggestions:

ajdawson commented 9 years ago

First off, thanks for the feedback, it is appreciated.

can you change the installation so that pyspharm is installed without having to type yes, or at least make sure that the user can see the prompt asking him/her to type yes

No I can't do this. Pip is detecting (correctly) that pyspharm is a required dependency of windspharm, and installing it automatically as it didn't find it (or didn't find a version >=1.8 which is what windspharm requires), but I have no control over how this happens, you need to file a report to the pyspharm project about this issue I think.

or can you add an appropriate note in the http://ajdawson.github.io/windspharm/#download-installation section to tell the user to type yes+ when the installation seems to be stuck?

Yes, I can do that.

I thought windspharm was distributed with UV-CDAT still, is that not the case any more?

ajdawson commented 9 years ago

wait till spherepack+pyspharm are silently installed, then windspharm is installed

It isn't silent really is it? I just checked and I see the full output pip should produce, including a message that windspharm is installed and that the dependency pyspharm will be downloaded and installed to satisfy the dependency. The final line I see is:

Successfully installed windspharm pyspharm

Do you not see that?

ajdawson commented 9 years ago

Documentation has been updated.

jypeter commented 9 years ago

Thanks @ajdawson for taking care of this and adding the extra installation note! windspharm is very easy to install once you know the yes trick, and otherwise pretty hard to install

In have added some more notes below for possible future reference:

> pip install windspharm==1.3.2
Downloading/unpacking windspharm==1.3.2
[windspharm download...]
  Running setup.py egg_info for package windspharm

Requirement already satisfied (use --upgrade to upgrade): numpy in /usr/local/install/cdat/versions/cdat_install_uv-2.1.0_x86_64_gcc4_VB_13/lib/python2.7/site-packages (from windspharm==1.3.2)
Downloading/unpacking pyspharm>=1.0.8 (from windspharm==1.3.2)
[pyspharm download]
  Running setup.py egg_info for package pyspharm
[NOTHING happens here, that's where you have to type 'yes'. The prompt is only displayed later]
yes

     SPHEREPACK fortran source files not in src directory.
     The SPHEREPACK license forbids redistribution of the source.
     You can download the tarfile from http://www.scd.ucar.edu/softlib/SPHERE.html
     and copy the *.f files to the src directory, or it can be done
     automatically for you now.

     WARNING: By downloading the SPHEREPACK source files, you are agreeing to
     the terms of the SPHEREPACK license at
     http://www2.cisl.ucar.edu/resources/legacy/spherepack/license

     Do you want to download SPHEREPACK now? (yes or no)spherepack3.2/src/alf.f
    spherepack3.2/src/gaqd.f
    spherepack3.2/src/hrfft.f
    spherepack3.2/src/ihgeod.f
[...]
Successfully installed windspharm pyspharm
Cleaning up...
ajdawson commented 9 years ago

OK thanks for the info @jypeter.

there is no obvious prompt asking the user to type yes

This is not a good thing, but as I said it is out of my hands, this all comes from pyspharm. I can't fix this, only document it (you can see this by doing pip install pyspharm first which will have the familiar issue, and then pip install windspharm which will install with no issue at all). Did you open a pyspharm ticket for this?

jypeter commented 9 years ago

Done! I have opened a pyspharm issue at https://code.google.com/p/pyspharm/issues/detail?id=4

rajeevskurup commented 9 years ago

I am also facing problems with windspharm installation.

In my UV-CDAT 2.0.0 installation I can't even import windspharm. It throws no module windspharm error. But windspharm module is there inside the site-packages directory. I have another UV-CDAT 1.3.1 installation. Here importing windspharm is working, but there is no windspharm.cdms module.

So I tried to install windspharm inside UV-CDAT 2.0.0 using pip. As this post mentions it just stops without saying anything at line
Running setup.py egg_info for package pyspharm I typed "yes" after waiting sometime and it gives this error.

SPHEREPACK fortran source files not in src directory.

The SPHEREPACK license forbids redistribution of the source.

You can download the tarfile from http://www.scd.ucar.edu/softlib/SPHERE.html

and copy the *.f files to the src directory, or it can be done

automatically for you now.

WARNING: By downloading the SPHEREPACK source files, you are agreeing to

the terms of the SPHEREPACK license at

http://www2.cisl.ucar.edu/resources/legacy/spherepack/license

Do you want to download SPHEREPACK now? (yes or no)Traceback (most recent call last):

File "", line 16, in

File "/tmp/pip-build/pyspharm/setup.py", line 36, in

urllib.urlretrieve(URL,tarfname)

File "/usr/local/uvcdat/2.0.0/lib/python2.7/urllib.py", line 94, in urlretrieve

return _urlopener.retrieve(url, filename, reporthook, data)

File "/usr/local/uvcdat/2.0.0/lib/python2.7/urllib.py", line 240, in retrieve

fp = self.open(url, data)

File "/usr/local/uvcdat/2.0.0/lib/python2.7/urllib.py", line 208, in open

return getattr(self, name)(url)

File "/usr/local/uvcdat/2.0.0/lib/python2.7/urllib.py", line 437, in open_https

h.endheaders(data)

File "/usr/local/uvcdat/2.0.0/lib/python2.7/httplib.py", line 991, in endheaders

self._send_output(message_body)

File "/usr/local/uvcdat/2.0.0/lib/python2.7/httplib.py", line 844, in _send_output

self.send(msg)

File "/usr/local/uvcdat/2.0.0/lib/python2.7/httplib.py", line 806, in send

self.connect()

File "/usr/local/uvcdat/2.0.0/lib/python2.7/httplib.py", line 1198, in connect

self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file)

File "/usr/local/uvcdat/2.0.0/lib/python2.7/ssl.py", line 392, in wrap_socket

ciphers=ciphers)

File "/usr/local/uvcdat/2.0.0/lib/python2.7/ssl.py", line 148, in init

self.do_handshake()

File "/usr/local/uvcdat/2.0.0/lib/python2.7/ssl.py", line 310, in do_handshake

self._sslobj.do_handshake()

IOError: [Errno socket error] [Errno 1] _ssl.c:510: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown protocol


Command python setup.py egg_info failed with error code 1 in /tmp/pip-build/pyspharm Storing complete log in /home/rajeev/.pip/pip.log

ajdawson commented 9 years ago

@rajeevskurup - Perhaps the best thing you can do is to go and download pyspharm 1.0.8 and make sure that is installed first. These issues are all to do with getting pyspharm installed, once you get that right windspharm installation will be simple. Unfortunately I don't develop or maintain pyspharm, it is a totally separate project so I can't really do much about this problem. I'd also recommend you talk to the UVCDAT developers about getting windspharm working in UVCDAT as I believe it is supposed to work properly out of the box. Again, I'm not a UVCDAT developer so I can't offer you much help beyond that.

ajdawson commented 9 years ago

Ping @doutriaux1.

rajeevskurup commented 9 years ago

Hi, I finally installed windspharm successfully. But had to manually download both spherepack and pyspharm . and put the fortran codes in pyspharm src folder before installing pyspharm. pyspharm setup was not able to download the spherepack automatically. http://www.scd.ucar.edu/softlib/SPHERE.html URL is not the correct one I think. After installing pyspharm windspharm got installed through pip.

Thanks for the help.

doutriaux1 commented 9 years ago

@rajeevskurup uvcdat 2.2.0 bianries are not longer a FULL build, windspharm is not part of it. If building from source you can turn it on with -DCDAT_BUILD_MODE=FULL see: https://github.com/UV-CDAT/uvcdat/wiki/Build https://github.com/UV-CDAT/uvcdat/wiki/System-Requirements and https://github.com/UV-CDAT/uvcdat/wiki/Install-from-source-command-line-options

rajeevskurup commented 9 years ago

I was using UV-CDAT 2.0.0 , from pre built binaries for ubuntu 14.04.

On Tue, Jul 14, 2015 at 9:37 PM, Charles Doutriaux <notifications@github.com

wrote:

@rajeevskurup https://github.com/rajeevskurup uvcdat 2.2.0 bianries are not longer a FULL build, windspharm is not part of it. If building from source you can turn it on with -DCDAT_BUILD_MODE=FULL see: https://github.com/UV-CDAT/uvcdat/wiki/Build https://github.com/UV-CDAT/uvcdat/wiki/System-Requirements and

https://github.com/UV-CDAT/uvcdat/wiki/Install-from-source-command-line-options

— Reply to this email directly or view it on GitHub https://github.com/ajdawson/windspharm/issues/44#issuecomment-121292373.

Rajeev S Kurup Research Scholar Center for Atmospheric Sciences IIT Delhi Hauz Khas New Delhi email; rajeevsk369@gmail.com Ph: 08802650783