feat(python进阶): 完成第三至第八课教学内容
This commit is contained in:
45
02_python进阶/2_8_虚拟环境与依赖管理/environment_example.py
Normal file
45
02_python进阶/2_8_虚拟环境与依赖管理/environment_example.py
Normal file
@@ -0,0 +1,45 @@
|
||||
# 第 2-8 课完整示例:虚拟环境与依赖管理
|
||||
#
|
||||
# 本示例只读取当前 Python 解释器和环境信息,不安装、卸载任何依赖。
|
||||
|
||||
import platform
|
||||
import sys
|
||||
from importlib.metadata import PackageNotFoundError, version
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def is_virtual_environment() -> bool:
|
||||
"""判断当前程序是否运行在普通 venv 虚拟环境中。"""
|
||||
# 普通环境中 sys.prefix 和 sys.base_prefix 通常相同。
|
||||
# venv 激活并使用其 Python 后,这两个路径通常不同。
|
||||
return sys.prefix != sys.base_prefix
|
||||
|
||||
|
||||
def get_package_version(package_name: str) -> str | None:
|
||||
"""返回已安装依赖的版本,未安装时返回 None。"""
|
||||
try:
|
||||
return version(package_name)
|
||||
except PackageNotFoundError:
|
||||
return None
|
||||
|
||||
|
||||
def get_environment_name() -> str:
|
||||
"""返回当前环境目录名称。"""
|
||||
return Path(sys.prefix).name
|
||||
|
||||
|
||||
def main() -> None:
|
||||
"""输出解释器、虚拟环境和 pip 版本信息。"""
|
||||
in_virtual_environment = is_virtual_environment()
|
||||
environment_status = "是" if in_virtual_environment else "否"
|
||||
pip_version = get_package_version("pip")
|
||||
|
||||
print(f"Python 版本:{platform.python_version()}")
|
||||
print(f"Python 解释器:{sys.executable}")
|
||||
print(f"当前环境目录:{get_environment_name()}")
|
||||
print(f"是否为 venv 虚拟环境:{environment_status}")
|
||||
print(f"pip 版本:{pip_version}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user