Ian Bicking wrote:
> Ian Bicking wrote:
>
>>Ben Bangert encountered a problem where
>>pkg_resources.WorkingSet.run_script didn't work; from line 407:
>>
>> self.require(requires)[0].run_script(script_name, ns)
>>
>>If all the packages are already loaded for some reason, then
>>self.require() returns [].
>
>
> Looking at it, I think self.require(requires)[0] would only work if the
> package was installed multi-version. When all the packages are
> activated by default, of course require() should return nothing.
Nevermind that. The problem is the generated scripts:
#!/usr/local/bin/python
# EASY-INSTALL-SCRIPT: 'PasteScript==0.1dev-r3260','paster'
__requires__ = 'PasteScript==0.1dev-r3260'
import pkg_resources
pkg_resources.run_script('PasteScript==0.1dev-r3260', 'paster')
The __requires__ variable causes pkg_resources to require that package.
So later when .run_script() is called, the package has already been
loaded, and .requires() returns [], and it fails. I actually don't know
what situation it would work in. But I also realize setuptools has had
a hard time updating my scripts, so I didn't notice it myself.
While we're at it, the explicit version in these scripts causes me no
end of problems. Since scripts are generally not installed in a
multi-version manner (only one script by a particular name can be access
on $PATH), it seems they should have versionless requires, thus getting
the newest version. Or, at least, they should load the "active"
version, whatever that is (typically the newest version).
_______________________________________________
Distutils-SIG maillist - [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig