python3.x如何获取用户安装packag的目录

2024-10-03 17:20:35 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我正在使用以下文件夹树构建一个Python包:

main
|-- setup.py
|-- the_package
     |--globar_vars.py
     |--the_main_script.py

当用户以任何方式执行安装时,例如:

^{pr2}$

或者,使用PIP:

pip install 'SomeProject'

我希望将安装包的文件夹保存在global_vars.py上的任何变量中,例如:

globarl_vars.py
#!/usr/bin/env python3

user_installed_pkg = '/some/path/where/the/package/was/installed'

有什么办法可以得到它吗?提前谢谢。在


Tags: pipinstalledthe用户py文件夹packagemain
2条回答

假设您的SomeProject包是well-formed Python package(可以使用setuptools完成),用户只需使用setuptools包提供的^{}模块就可以派生出位置。例如:

>>> from pkg_resources import working_set
>>> from pkg_resources import Requirement
>>> working_set.find(Requirement.parse('requests'))
requests 2.2.1 (/usr/lib/python3/dist-packages)
>>> working_set.find(Requirement.parse('requests')).location
'/usr/lib/python3/dist-packages'

但是,返回的路径可能是egg中的某个内容,这意味着它将不是一个可以通过标准文件系统工具直接使用的路径。在这些情况下,您通常希望使用Resource manager API来访问资源。在

^{pr2}$
import wtv_module
print(wtv_module.__file__)

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

相关问题 更多 >