[SciPy-dev] issues with scipy and eggs
strawman at astraw.com
Mon Dec 12 16:04:28 CST 2005
Ravikiran Rajagopal wrote:
>On Monday 12 December 2005 15:53, Fernando Perez wrote:
>>Robert Kern wrote:
>>>Well, there's the problem with the __init__.py's from full scipy
>>>overwriting scipy_core's during a regular install. As Andrew suggested,
>>>we can simply have synced copies in both packages. To do that *right*, we
>>>need some SVN magic (svn:external?).
>>Mmh, I hadn't noticed this because I've been building from source so far.
>> Is this going to be problematic for package managers? From what I've
>>seen, rpm does not like packages which overwrite files in other packages
>>(though there may be directives to tweak that), I don't know what apt-get
>>does in this case.
I agree that the issue of package managers not wanting to overwrite
files seems a serious and understandable one, and I agree this is best
avoided. Hopefully we can find an alternative.
>Cheapo solution: the proverbial extra level of indirection. Make __init__.py
>only in scipy_core which checks for existence of scipy_full_init.py at run
>time and sources it if necessary. As I understand it, we need scipy_core to
>install scipy_full; so we can remove __init__.py from scipy_full.
Unfortunately, I don't think this is a solution -- I think it's
essentially what we have now. Basically, we have two conflicting cases:
1) A non-setuptools install where site-packages/scipy/__init__.py is
installed by scipy_core but is smart enough to figure out full scipy is
2) A setuptools install where site-packages/scipy_core.egg and scipy.egg
exist and both need a scipy/__init__.py file to tell pkg_resources to
keep looking for the other scipy package.
I don't know enough about the setuptools innards to know if approach 2
is the only way to go. (Heck, I was just blindly following Robert's lead
to get as far as I did in this...) Robert (or anyone): what if we used
"declare_namespace" in full scipy's setup() call -- would that perform
the necessary setuptools magic without needing an __init__.py file that
would overwrite scipy_core's?
Perhaps a question to the distutils list (the de facto setuptools list)
will help resolve the issue. Perhaps the issue is even worth a feature
request in setuptools if one is needed to support our use cases.
More information about the Scipy-dev