如何查找已安装的pip包的资产

时间:2016-09-09 04:57:35

标签: python pip

在部署我的应用程序时,我需要安装一个库,其中包含必须从静态目录提供的一些资产。这意味着,在部署期间,我必须执行以下操作:

  1. pip install
  2. 找到已安装软件包的绝对位置(在virtualenv或全球位置通常为site-packages
  3. 将资产从已安装的软件包复制到静态目录
  4. 是否有可行的方法来执行第2步?我必须找到已安装软件包的唯一起始数据是pip / python

    有没有办法告诉python:您在哪个绝对位置安装了某个套餐?

3 个答案:

答案 0 :(得分:1)

如果安装包abc,您应该能够导入该包并在python程序中获取其基本位置:

import abc
import os
print(os.path.dirname(abc.__file__))

如果由于某些副作用而无法导入,则可能会有这种情况 可以走sys.path并寻找abc.pyabc/__init__.py

如果您有多个安装,您可能找不到刚刚安装的版本,但在这种情况下,在导入abc时也不会运行该版本,而是旧版本。

答案 1 :(得分:1)

您可以尝试通过以下命令查找已安装的软件包。

pip show installed-package-name

这将返回包含位置的一堆属性。见下面的例子。

C:\> pip show selenium
---
Metadata-Version: 2.0
Name: selenium
Version: 3.0.0b2
Summary: Python bindings for Selenium
Home-page: https://github.com/SeleniumHQ/selenium/
Author: UNKNOWN
Author-email: UNKNOWN
License: UNKNOWN
Location: d:\appl\python27\lib\site-packages
Requires:

答案 2 :(得分:0)

pkgutil.get_data。基于文件系统的方法打破了以zip文件形式安装的软件包。