在部署我的应用程序时,我需要安装一个库,其中包含必须从静态目录提供的一些资产。这意味着,在部署过程中,我必须做到以下几点:如何查找已安装pip程序包的资产
pip install
包- 查找所在的包已经安装了绝对位置(这通常是在virtualenv中或全球定位
site-packages
) - 将资产从已安装的软件包复制到静态目录
是否存在执行步骤2的便携方式?我必须找到安装包的唯一起始数据是pip
/python
。
有没有办法告诉python
:您在什么绝对位置安装了某个包?
在部署我的应用程序时,我需要安装一个库,其中包含必须从静态目录提供的一些资产。这意味着,在部署过程中,我必须做到以下几点:如何查找已安装pip程序包的资产
pip install
包site-packages
)是否存在执行步骤2的便携方式?我必须找到安装包的唯一起始数据是pip
/python
。
有没有办法告诉python
:您在什么绝对位置安装了某个包?
如果你安装包abc
,你应该能够导入包并获取其基本位置在Python程序有:
import abc
import os
print(os.path.dirname(abc.__file__))
如果进口是因为一些副作用,这样做可能不可能你 可以走sys.path
并寻找abc.py
或abc/__init__.py
。
如果您有多个安装,则可能找不到您刚刚安装的版本,但在这种情况下,导入abc
时也不会运行该版本,而是旧版本。
您可以尝试通过以下命令找到您安装的软件包。
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:
请参阅pkgutil.get_data。基于文件系统的方法与作为zip文件安装的软件包断开连接。
Zipfiles还需要一种完全不同的方法来添加资产。 – Anthon