Installing modules via setuptools in a script
Thorsten Kampe
thorsten at thorstenkampe.de
Sun Nov 25 08:30:28 EST 2007
* Robert Kern (Sat, 24 Nov 2007 16:33:37 -0600)
> Thorsten Kampe wrote:
> > can anyone give me a short code snippet how to install a missing
> > module via setuptools (assuming setuptools is already installed)?!
> >
> > Something like this:
> >
> > try:
> > import missing_module
> > except import_error
> > import setuptools
> > setuptools.whatever.install(missing_module)
>
> The recommended way to handle dependencies using setuptools is to specify them
> in the install_requires metadata in the setup() function call in your setup.py:
It's just a simple script - no package. So I don't even have a
setup.py.
> However, if you have special needs that really do require downloading the
> dependency at runtime instead of install-time:
>
> #
> http://peak.telecommunity.com/DevCenter/PkgResources#workingset-methods-and-attributes
>
> import pkg_resources
> pkg_resources.resolve('some_package >= 1.0')
> pkg_resources.resolve('another_package')
>
> import some_package
> import another_package
[5]>>> pkg_resources.working_set.resolve('betterprint')
----------------------------------------------------------------------
-----
AttributeError Traceback (most recent call
last)
F:\program files\python\<ipython console> in <module>()
F:\program files\python\lib\site-packages\setuptools-0.6c5-py2.5.egg
\pkg_resou
rces.py in resolve(self=<pkg_resources.WorkingSet object at
0x01457710>, requi
rements=['n', 'i', 'r', 'p', 'r', 'e', 't', 't', 'e', 'b'], env=None,
installe
r=None)
472 # Ignore cyclic or redundant dependencies
473 continue
--> 474 dist = best.get(req.key)
dist = undefined
best.get = <built-in method get of dict object at 0x016BC660>
req.key = undefined
475 if dist is None:
476 # Find the best distribution and add it to the
map
AttributeError: 'str' object has no attribute 'key'
More information about the Python-list
mailing list