2024-05-14 22:49:28 发布
网友
def get_pkgs(): pkgs = [] for importer, modname, ispkg in \ pkgutil.walk_packages(path=None, onerror=lambda x: None): pkgs.append(modname) return pkgs
上面的代码片段为我提供了发行版中的所有python包。有人能给我一个建议,让python应用程序从这些包中取出所有的包吗?在
Snakefood很好,正如svenmarnach已经回答的那样,但是这提供了所有的文件依赖关系,我不确定它是否会告诉您使用了哪些包,而不是每个文件依赖项。在
对于Python Package Index中可用的包,可以使用virtualenv(和pip)来获得所需/已用包的简单列表。在
例如,假设您还安装了优秀的virtualenvwrapper工具(高度推荐),下面是一个序列,显示了pylint的软件包要求:
$ mkvirtualenv pylint_dep_check no-site-packages New python executable in pylint_dep_check/bin/python Installing setuptools............done. $ pip freeze #Note the wsgiref 'bug' where it always shows up wsgiref==0.1.2 $ workon pylint_dep_check (pylint_dep_check) $ pip install pylint (... snipped lengthy install text ...) (pylint_dep_check) $ pip freeze logilab-astng==0.21.1 logilab-common==0.55.0 pylint==0.23.0 unittest2==0.5.1 wsgiref==0.1.2
不知道 no-site-packagesvirtualenv创建选项的所有重要用途(惊喜!)你的发行版保证你的网站没有安装全新的软件包。这样,你安装的应用程序需要什么就很清楚了。在
no-site-packages
如果这是您开发的应用程序,跟踪依赖关系的一个好方法(也是一个很好的/干净的工作方式)是在一个干净的virtualenv(再次使用 no-site-packages选项创建)中设置该应用程序,然后再次使用pip freeze来确定安装了哪些包使其工作。在
pip freeze
使用 no-site-packages选项启动“全新”python安装的能力非常有用。我对所有的应用程序都这样做,并测试我感兴趣的包,而不会弄乱我的工作区。在
如果你还没有使用virtualenv和pip,那就开始吧。下面是一个很好的介绍: http://mathematism.com/2009/07/30/presentation-pip-and-virtualenv/
最简单的方法是使用Python依赖性分析工具snakefood。在
Snakefood很好,正如svenmarnach已经回答的那样,但是这提供了所有的文件依赖关系,我不确定它是否会告诉您使用了哪些包,而不是每个文件依赖项。在
对于Python Package Index中可用的包,可以使用virtualenv(和pip)来获得所需/已用包的简单列表。在
例如,假设您还安装了优秀的virtualenvwrapper工具(高度推荐),下面是一个序列,显示了pylint的软件包要求:
不知道
no-site-packages
virtualenv创建选项的所有重要用途(惊喜!)你的发行版保证你的网站没有安装全新的软件包。这样,你安装的应用程序需要什么就很清楚了。在如果这是您开发的应用程序,跟踪依赖关系的一个好方法(也是一个很好的/干净的工作方式)是在一个干净的virtualenv(再次使用
no-site-packages
选项创建)中设置该应用程序,然后再次使用pip freeze
来确定安装了哪些包使其工作。在使用
no-site-packages
选项启动“全新”python安装的能力非常有用。我对所有的应用程序都这样做,并测试我感兴趣的包,而不会弄乱我的工作区。在如果你还没有使用virtualenv和pip,那就开始吧。下面是一个很好的介绍: http://mathematism.com/2009/07/30/presentation-pip-and-virtualenv/
最简单的方法是使用Python依赖性分析工具snakefood。在
相关问题 更多 >
编程相关推荐