At 12:17 PM 11/2/2005 -0600, Ian Bicking wrote: >(got a little truncated, but ignoring that.) If "dist is None", i.e., >no egg for the requirement is yet loaded, the egg is loaded with >"self.by_key.get(req.key)". req.key doesn't have any version >information, it's just the package name.
Eep. That is indeed a bug. >If I change the second "if dist is None" to "if dist is None or dist not >in req" then at least I get a version conflict. But I thought >setuptools 0.6a7 was able to load an egg besides the default version. It is able to, as long as the egg is one required by the __main__ program. There is special startup logic that checks for VersionConflict on application start, and then fudges things to work around it. It is not, however, an all-purpose facility to allow loading non-default versions. That would involve more complex refactoring and isn't something I'll attempt in a minor release. (Indeed, I suspect that supporting it properly would require a rethink of the entire WorkingSet API and implementation, and perhaps a fair bit of hooking into Python's import machinery besides.) >Actually, I'm now confused how anything but the default version can be >loaded. Yeah, that's the bug all right. >I'm having a hard time figuring out how I didn't notice this before. Me too! I'm guessing this was introduced when I made some changes to resolve() to avoid unnecessary directory scans. resolve() was previously not even looking to see if the working set already contained a matching distribution. Anyway, the simplest fix should be to change the 'elif dist not in req' to 'if dist not in req'. _______________________________________________ Distutils-SIG maillist - [email protected] http://mail.python.org/mailman/listinfo/distutils-sig
