Am Fr 21 Sep 2012 22:37:13 CEST schrieb Benjamin Root: > > > On Fri, Sep 21, 2012 at 4:19 PM, Travis Oliphant <tra...@continuum.io > <mailto: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.
Quite easily, actually. I ran into pip wanting to upgrade numpy when I was installing/upgrading a package depending on numpy. Problem is, -U upgrades both the package you explicitly select *and* its dependencies. I know there's some way around this, but it's not obvious -- at least not for users. Cheers, Andreas. _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion