解决方案
虽然我更喜欢使用importlib.metadata
,但既然已经有另一个答案展示了如何使用它,我将向您展示另一种选择。
为了说明,我将使用来自PyPI的我的一个软件包genespeak
。
使用metadata
try:
from importlib import metadata
except ImportError:
import importlib_metadata as metadata
print(metadata.name('genespeak'))
print(metadata.version('genespeak'))
使用pkginfo
PyPI
我们将使用以下5种方式来访问软件包信息。
from pkginfo import SDist, BDist, Wheel, Installed, Develop
A. 从源分发包中检查软件包信息
通常情况下,您可以使用以下命令创建源分发包:
python setup.py sdist
假设您在路径
./dist/genespeak-0.0.7.tar.gz
下有一个
.tar.gz
文件,以下是提取包信息所需的步骤。
from pkginfo import SDist
pkg = SDist("./dist/genespeak-0.0.7.tar.gz")
print(pkg.name)
print(pkg.version)
B. 从二进制发行版中检查软件包信息
通常,您可以使用以下命令创建二进制发行版文件(.egg
):
python setup.py bdist_egg
假设您在路径
./dist/genespeak-0.0.7-py38.egg
中有一个
.egg
文件,以下是提取软件包信息所需的步骤。
from pkginfo import BDist
pkg = BDist("./dist/genespeak-0.0.7-py38.egg")
print(pkg.name)
print(pkg.version)
C. 从Wheel中检查软件包信息
通常,您会使用以下命令创建二进制分发的wheel文件(.whl
):
python setup.py bdist_wheel
假设您有一个位于路径
./dist/genespeak-0.0.7-py3-none-any.whl
的
.whl
文件,以下是提取包信息所需的步骤。
from pkginfo import Wheel
pkg = Wheel("./dist/genespeak-0.0.7-py3-none-any-whl")
print(pkg.name)
print(pkg.version)
D. 从已安装的包中检查包信息
更多详情请参见此处
from pkginfo import Installed
import genespeak
pkg = Installed(genespeak)
print(pkg.name)
print(pkg.version)
E. 从开发目录检查软件包信息
from pkginfo import Develop
dev = Develop(".")
print(dev.name)
print(dev.version)
参考资料
.egg-info
目录。 - undefined