gpt4 book ai didi

Python 3.x - 如何获取用户安装包的目录

转载 作者:太空宇宙 更新时间:2023-11-04 05:23:54 25 4
gpt4 key购买 nike

假设我正在构建一个具有以下文件夹树的 Python 包:

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

当用户无论如何都要安装它时,例如:

sudo python setup.py install
python setup.py install --user
python setup.py install --prefix=/usr/local

或者,使用 PIP:

pip install 'SomeProject'

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

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

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

有办法得到吗?提前致谢。

最佳答案

假设您的 SomeProject 包是一个 well-formed Python package (这可以使用 setuptools 完成),用户可以简单地使用 pkg_resources 导出位置。 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在这些情况下访问资源。

>>> import pkg_resources
>>> api_src = pkg_resources.resource_string('requests', 'api.py')
>>> api_src[:25]
b'# -*- coding: utf-8 -*-\n\n'

关于Python 3.x - 如何获取用户安装包的目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39460193/

25 4 0
文章推荐: python - Argparse:如何在其他选项存在的情况下禁止某些选项 - Python
文章推荐: css - 内联 CSS 不居中
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com