On Fri, Sep 21, 2012 at 4:19 PM, Travis Oliphant <tra...@continuum.io>wrote:
> > On Sep 21, 2012, at 3:13 PM, Ralf Gommers wrote: > > Hi, > > An issue I keep running into is that packages use: > install_requires = ["numpy"] > or > install_requires = ['numpy >= 1.6'] > > in their setup.py. This simply doesn't work a lot of the time. I actually > filed a bug against patsy for that ( > https://github.com/pydata/patsy/issues/5), but Nathaniel is right that it > would be better to bring it up on this list. > > The problem is that if you use pip, it doesn't detect numpy (may work > better if you had installed numpy with setuptools) and tries to > automatically install or upgrade numpy. That won't work if users don't have > the right compiler. Just as bad would be that it does work, and the user > didn't want to upgrade for whatever reason. > > This isn't just my problem; at Wes' pandas tutorial at EuroScipy I saw > other people have the exact same problem. My recommendation would be to not > use install_requires for numpy, but simply do something like this in > setup.py: > > try: > import numpy > except ImportError: > raise ImportError("my_package requires numpy") > > or > > try: > from numpy.version import short_version as npversion > except ImportError: > raise ImportError("my_package requires numpy") > if npversion < '1.6': > raise ImportError("Numpy version is %s; required is version >= 1.6" > % npversion) > > Any objections, better ideas? Is there a good place to put it in the numpy > docs somewhere? > > > I agree. I would recommend against using install requires. > > -Travis > > > Why? I have personally never had an issue with this. The only way I could imagine that this wouldn't work is if numpy was installed via some other means and there wasn't an entry in the easy-install.pth (or whatever equivalent pip uses). If pip is having a problem detecting numpy, then that is a bug that needs fixing somewhere. As for packages getting updated unintentionally, easy_install and pip both require an argument to upgrade any existing packages (I think -U), so I am not sure how you are running into such a situation. I have found install_requires to be a powerful feature in my setup.py scripts, and I have seen no reason to discourage it. Perhaps I am the only one? Ben Root
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion