2016-09-09 56 views
0

在部署我的应用程序时,我需要安装一个库,其中包含必须从静态目录提供的一些资产。这意味着,在部署过程中,我必须做到以下几点:如何查找已安装pip程序包的资产

  1. pip install
  2. 查找所在的包已经安装了绝对位置(这通常是在virtualenv中或全球定位site-packages
  3. 将资产从已安装的软件包复制到静态目录

是否存在执行步骤2的便携方式?我必须找到安装包的唯一起始数据是pip/python

有没有办法告诉python:您在什么绝对位置安装了某个包?

回答

1

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

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

如果进口是因为一些副作用,这样做可能不可能你 可以走sys.path并寻找abc.pyabc/__init__.py

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

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: 
0

请参阅pkgutil.get_data。基于文件系统的方法与作为zip文件安装的软件包断开连接。

+0

Zipfiles还需要一种完全不同的方法来添加资产。 – Anthon