繁体   English   中英

查找 Python 模块名称

[英]Find Python module name

软件 package 安装 Django RESTful 框架是djangorestframework

$ pip freeze|grep rest
djangorestframework==3.11.1

我可以通过命令找到这个软件的位置:

$ pip show djangorestframework
Name: djangorestframework
Version: 3.11.1
Summary: Web APIs for Django, made easy.
Home-page: https://www.django-rest-framework.org/
Author: Tom Christie
Author-email: tom@tomchristie.com
License: BSD
Location: /home/abc_venv/lib/python3.6/site-packages
Requires: django
Required-by:

$ cd /home/abc_venv/lib/python3.6/site-packages

我如何知道软件安装在哪个文件夹中(即要导入的模块的名称)? 在这种情况下,

rest_framework 

哪个与软件package名称不同?

您可以在djangorestframework-3.12.4.dist-info/top_level.txt文件中看到该文件夹。

我刚刚安装了djangorestframework

$ cat /home/abc_venv/lib/python3.6/site-packages/djangorestframework-3.12.4.dist-info/top_level.txt
rest_framework

如果你想花哨,你可以用Python来做:

import os
import site
from pathlib import Path

site_package_path = site.getsitepackages()[0]  # "/home/abc_venv/lib/python3.6/site-packages"
dist_info_path = [p for p in Path(site.getsitepackages()[0]).rglob("djangorestframework-*")][0]  # "/home/abc_venv/lib/python3.6/site-packages/djangorestframework-3.12.4.dist-info/"
top_level_path = os.path.join(dist_info_path, "top_level.txt")

with open(top_level_path, "r") as f:
    folder_name = "\n".join(l for l in f.readlines()).strip()

print(folder_name)  # "rest_framework"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM