471,344 Members | 1,012 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 471,344 software developers and data experts.

Tool for finding external dependencies

Hi,

I need to find external dependencies for modules (not Python standard
library imports).

Currently I use pylint and manually scan the output, which is very
nice, or use pylint's --ext-import-graph option to create a .dot file
and extract the info from it, but either way can take a very long
time.

I'm aware of Python's modulefinder.py, but it doesn't find external
dependencies (or at least I don't know how to make it do them).

Thanks,
Rob

Jul 9 '07 #1
8 8061
On Jul 8, 8:39 pm, Rob Cakebread <gentoo...@gmail.comwrote:
Hi,

I need to find external dependencies for modules (not Python standard
library imports).

Currently I use pylint and manually scan the output, which is very
nice, or use pylint's --ext-import-graph option to create a .dot file
and extract the info from it, but either way can take a very long
time.

I'm aware of Python's modulefinder.py, but it doesn't find external
dependencies (or at least I don't know how to make it do them).

Thanks,
Rob
Recently I ran into some debugging issues and the freeware app
"Dependency Walker" was suggested to me. I still haven't used it much
since I only got it last Friday, but it looks promising:
http://www.dependencywalker.com

Mike

Jul 9 '07 #2
On Jul 9, 7:17 am, kyoso...@gmail.com wrote:
>
Recently I ran into some debugging issues and the freeware app
"Dependency Walker" was suggested to me. I still haven't used it much
since I only got it last Friday, but it looks promising:http://www.dependencywalker.com

Mike
Thanks Mike, but I'm just trying to determine Python imports, like:

$ pylint g_pypi

[snip lots of other tests which take a lonnnnnng time]

External dependencies
---------------------
::

configobj (g_pypi.config)
portage (g_pypi.enamer,g_pypi.portage_utils,g_pypi.cli)
pkg_resources (g_pypi.cli,g_pypi.ebuild)
yolk
\-pypi (g_pypi.cli)
\-setuptools_support (g_pypi.cli)
\-yolklib (g_pypi.cli)
gentoolkit (g_pypi.portage_utils)
pygments (g_pypi.ebuild)
\-lexers (g_pypi.ebuild)
\-formatters (g_pypi.ebuild)
Cheetah
\-Template (g_pypi.ebuild)
Jul 9 '07 #3
On Jul 9, 9:27 am, Rob Cakebread <gentoo...@gmail.comwrote:
On Jul 9, 7:17 am, kyoso...@gmail.com wrote:
Recently I ran into some debugging issues and the freeware app
"Dependency Walker" was suggested to me. I still haven't used it much
since I only got it last Friday, but it looks promising:http://www.dependencywalker.com
Mike

Thanks Mike, but I'm just trying to determine Python imports, like:

$ pylint g_pypi

[snip lots of other tests which take a lonnnnnng time]

External dependencies
---------------------
::

configobj (g_pypi.config)
portage (g_pypi.enamer,g_pypi.portage_utils,g_pypi.cli)
pkg_resources (g_pypi.cli,g_pypi.ebuild)
yolk
\-pypi (g_pypi.cli)
\-setuptools_support (g_pypi.cli)
\-yolklib (g_pypi.cli)
gentoolkit (g_pypi.portage_utils)
pygments (g_pypi.ebuild)
\-lexers (g_pypi.ebuild)
\-formatters (g_pypi.ebuild)
Cheetah
\-Template (g_pypi.ebuild)
Hmmm...I also use GUI2Exe, which may help you too. It'll list "missing
modules" and binary dependencies. It's basically a GUI interface to
py2exe:

http://xoomer.alice.it/infinity77/eng/GUI2Exe.html
This looks interesting, but I've never used it:

http://www.tarind.com/depgraph.html
Finally, here's some more info on modulefinder:

http://svn.python.org/projects/pytho...odulefinder.py

Looks like you run modulefinder like this:

<code>

mod = modulefinder.ModuleFinder()
mod.run_script(path/to/python_script.py)
mod.report()

</code>

Mike

Jul 9 '07 #4
On Jul 9, 7:54 am, kyoso...@gmail.com wrote:
<snip>
<code>

mod = modulefinder.ModuleFinder()
mod.run_script(path/to/python_script.py)
mod.report()

</code>

Mike
Nope. All of those tools and the code above show *all* imports/
dependencies, which is way too much information. I just need the
'external' dependencies, like in the example from pylint I pasted
above. If nothing exists I'll just have to figure out how pylint does
it.

I'm working on g-pypi which creates ebuilds for Gentoo Linux. For
packages that use setuptools I can get the dependencies easily enough
because of 'install_requires', but for packages that don't, I need
another way to find them.

Thanks,
Rob

Jul 9 '07 #5
On Jul 9, 6:42 pm, Rob Cakebread <gentoo...@gmail.comwrote:
On Jul 9, 7:54 am, kyoso...@gmail.com wrote:
<snip>
<code>
mod = modulefinder.ModuleFinder()
mod.run_script(path/to/python_script.py)
mod.report()
</code>
Mike

Nope. All of those tools and the code above show *all* imports/
dependencies, which is way too much information. I just need the
'external' dependencies, like in the example from pylint I pasted
above. If nothing exists I'll just have to figure out how pylint does
it.
Isn't it possible to get from modulefinder what it has found and just
filter it out according to your rules?
This way you are in control and can deicde what is internal/external.

../alex
--
..w( the_mindstorm )p.
I'm working on g-pypi which creates ebuilds for Gentoo Linux. For
packages that use setuptools I can get the dependencies easily enough
because of 'install_requires', but for packages that don't, I need
another way to find them.

Thanks,
Rob

Jul 9 '07 #6
On Jul 9, 9:23 am, Alex Popescu <the.mindstorm.mailingl...@gmail.com>
wrote:
Isn't it possible to get from modulefinder what it has found and just
filter it out according to your rules?
This way you are in control and can deicde what is internal/external.
At first glance it looked easy enough, by just filtering out
everything that isn't in site-packages, but that isn't quite accurate
as accurate as pylint and it also shows indirect dependencies too.
e.g. pkga imports pkgb, which imports pkgc. I don't want pkgc.

To clarify, if I had a module with:

import os,sys, re
import sqlobject

I only want to know about sqlobject. I don't want any of sqlobject's
dependencies, such as MySQLdb, pysqlite2, psycopg2 etc. which
modulefinder shows also.

And as far as I can tell, modulefinder needs a Python script, but its
much easier for me to find a package's modules automatically.
Thanks,
Rob

Jul 9 '07 #7
Rob Cakebread <ge*******@gmail.comwrites:
Hi,

I need to find external dependencies for modules (not Python standard
library imports).

Currently I use pylint and manually scan the output, which is very
nice, or use pylint's --ext-import-graph option to create a .dot file
and extract the info from it, but either way can take a very long
time.

I'm aware of Python's modulefinder.py, but it doesn't find external
dependencies (or at least I don't know how to make it do them).
Try looking at py2exe and pyinstaller. They may have useful ideas.
John
Jul 10 '07 #8
syt
On Jul 9, 3:39 am, Rob Cakebread <gentoo...@gmail.comwrote:
Hi,

I need to find external dependencies for modules (not Python standard
library imports).

Currently I usepylintand manually scan the output, which is very
nice, or usepylint's--ext-import-graph option to create a .dot file
and extract the info from it, but either way can take a very long
time.

I'm aware of Python's modulefinder.py, but it doesn't find external
dependencies (or at least I don't know how to make it do them).
notice that you can launch pylint in the following way to disabling
everything but dependencies analysis : ::

pylint --enable-checker=imports yourproject

this will disable all others checkers and you may gain a signifiant
speedup.

-- Sylvain

Jul 13 '07 #9

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

3 posts views Thread by Linus Nikander | last post: by
1 post views Thread by Guyon Morée | last post: by
reply views Thread by Maarten | last post: by
reply views Thread by Maarten | last post: by
1 post views Thread by Gaetan | last post: by
2 posts views Thread by Justin T. Gibbs | last post: by
4 posts views Thread by Bernhard Merkle | last post: by
reply views Thread by Ronak mishra | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.