相关疑难解决方法(0)

识别用pip安装的python包的依赖关系

当我执行pip冻结时,我看到了大量的Python包,我没有明确安装,例如

$ pip freeze
Cheetah==2.4.3
GnuPGInterface==0.3.2
Landscape-Client==11.01
M2Crypto==0.20.1
PAM==0.4.2
PIL==1.1.7
PyYAML==3.09
Twisted-Core==10.2.0
Twisted-Web==10.2.0
(etc.)
Run Code Online (Sandbox Code Playgroud)

有没有办法让我确定为什么pip安装了这些特定的依赖包?换句话说,如何确定将这些包作为依赖项的父包?

例如,我可能想要使用Twisted,我不想依赖于包,直到我知道更多关于不小心卸载或升级它.

python pip

127
推荐指数
5
解决办法
5万
查看次数

如何找到Python包的依赖项

如何以编程方式获取Python包的依赖项列表?

标准setup.py有这些记录,但我找不到 Python或命令行访问它的简单方法.

理想情况下,我正在寻找类似的东西:

$ pip install somepackage --only-list-deps
kombu>=3.0.8
billiard>=3.3.0.13
boto>=2.26
Run Code Online (Sandbox Code Playgroud)

要么:

>>> import package_deps
>>> package = package_deps.find('somepackage')
>>> print package.dependencies
['kombu>=3.0.8', 'billiard>=3.3.0.13', 'boto>=2.26']
Run Code Online (Sandbox Code Playgroud)

注意,我不是在谈论导入包和查找所有引用的模块.虽然这可能会找到大多数依赖包,但它无法找到所需的最小版本号.那只存储在setup.py中.

python pip

75
推荐指数
7
解决办法
5万
查看次数

如何在不安装的情况下列出python库的依赖项?

有没有办法获得给定python包的依赖项列表而不先安装它?

我目前可以获得要求列表,但它需要安装包.例如,我可以使用pip来显示基本需求信息,但它不包含版本信息:

$ pip show pytest
Name: pytest
Version: 3.0.6
...
Requires: colorama, setuptools, py
Run Code Online (Sandbox Code Playgroud)

我已经尝试过一个名为pipdeptree包含更好输出要求的库,但它也需要安装包

$ pipdeptree -p pytest
pytest==3.0.6
- colorama [required: Any, installed: 0.3.7]
- py [required: >=1.4.29, installed: 1.4.32]
- setuptools [required: Any, installed: 34.0.0]
  - appdirs [required: >=1.4.0, installed: 1.4.0]
...
Run Code Online (Sandbox Code Playgroud)

理想情况下,我会得到pipdeptree提供的详细程度.此外,能够requirements.txt从python wheel或pypi 生成文件pip也足够了.

编辑:

我看过类似的问题.它们要么过时,需要安装,要么它们不列出给定包的单个依赖项,只列出解决依赖性要求后最终下载的包的列表.例如,我并不关心pip下载package-2.3.4,我宁愿知道这package>=2.1是一个要求.

python pip python-packaging

19
推荐指数
1
解决办法
3886
查看次数

为什么virtualenv环境包含argparse,distribute和wsgiref?

我使用virtualenv版本1.7.1.2与python2.7.3创建虚拟python环境.但是当我创建这样的环境并激活它时,我可以看到安装了以下软件包(使用pip freeze):

argparse==1.2.1
distribute==0.6.24
wsgiref==0.1.2
Run Code Online (Sandbox Code Playgroud)

这是为什么?那是什么意思?

python virtualenv python-2.7

15
推荐指数
1
解决办法
2868
查看次数

我如何获得要点信息以列出正在使用的存储库?

我试图在我的机器上运行一个代码库,而pip找不到一些依赖项。好像是在另一台机器上找到它们,所以我想看看两台机器上正在使用哪个回购点。

我怎样才能做到这一点?

python pip

7
推荐指数
2
解决办法
6572
查看次数

通过conda安装仅pip包的依赖项

有时我需要在conda环境中安装纯pip软件包。如果我使用安装软件包pip install,那么即使panda可以使用它们,该软件包的所有依赖项也会使用pip安装。

我想通过conda安装尽可能多的软件包,所以目前我使用黑客工具通过pip获取软件包依赖项列表,在conda上搜索所有conda install已找到的依赖项,然后通过找到pip install

我更喜欢通过conda而不是pip安装依赖项吗?如果是这样,谁能想到一种更优雅的方式来解决此问题?

pip conda

5
推荐指数
1
解决办法
464
查看次数

在 PyPI 中获取包的要求而不安装它?

我需要类似以下内容:

pip showrequirements tensorflow
Run Code Online (Sandbox Code Playgroud)

这将返回一些允许我解析所需软件包名称和所需版本的内容:

astor>0.6, tensorboard>1.0.11, etc.
Run Code Online (Sandbox Code Playgroud)

pip 在安装和下载命令期间以某种形式获取此信息。我可以在代码中看到它发生的地方……但是在我破解使用 pip 内部代码的方法之前,是否有任何简单的 API 或现有库可以做到这一点?

编辑:我无法安装软件包来查看此内容,因此 pip show 将不起作用。一种(hacky)解决方案是解析 pip 下载的输出。

谢谢!

python packages pip package-management pypi

5
推荐指数
1
解决办法
2009
查看次数