在部署我的应用程序时,我需要安装一个库,其中包含必须从静态目录提供的一些资产。这意味着,在部署期间,我必须执行以下操作:
pip install
包site-packages
)是否有可行的方法来执行第2步?我必须找到已安装软件包的唯一起始数据是pip
/ python
。
有没有办法告诉python
:您在哪个绝对位置安装了某个套餐?
答案 0 :(得分:1)
如果安装包abc
,您应该能够导入该包并在python程序中获取其基本位置:
import abc
import os
print(os.path.dirname(abc.__file__))
如果由于某些副作用而无法导入,则可能会有这种情况
可以走sys.path
并寻找abc.py
或abc/__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文件形式安装的软件包。