Skip to main content

一个强大的Python环境搜索与运行工具包

Project description

PyFinder - Python环境搜索与运行工具包

PyPI version Python versions License: MIT

PyFinder是一个强大的Python包,用于搜索系统中的Python环境(系统Python、UV、venv、Conda),并支持多种方式运行Python文件。

主要功能

  • 🔍 搜索Python环境: 自动检测系统中的所有Python环境,包括系统Python、UV、venv和Conda
  • 🚀 多种运行模式: 支持多文件模式和单文件模式运行Python代码
  • 💾 缓存机制: 缓存Python环境信息,提高搜索效率
  • 🌐 跨平台支持: 支持Windows、macOS和Linux
  • 📦 易于使用: 简单直观的API,轻松集成到项目中

安装

pip install pyfinder

快速开始

搜索Python环境

from pyfinder import find_python_environments

# 查找所有Python环境
environments = find_python_environments()

# 显示找到的环境
for env in environments:
    print(f"{env['name']} ({env['type']}) - {env['version']} - {env['path']}")

多文件模式运行

from pyfinder import run_with_python

# 使用指定Python运行脚本文件
result = run_with_python("python3.9", "script.py", args=["--arg1", "value1"])

if result["success"]:
    print("运行成功!")
    print(f"输出: {result['stdout']}")
else:
    print("运行失败!")
    print(f"错误: {result['stderr']}")

单文件模式运行

from pyfinder import auto_run_with_python

# 自动解析当前代码并使用指定Python运行
auto_run_with_python("python3.9")

高级用法

按类型查找Python环境

from pyfinder import find_python_by_type

# 查找所有venv环境
venv_envs = find_python_by_type("venv")

# 查找所有Conda环境
conda_envs = find_python_by_type("conda")

按版本查找Python环境

from pyfinder import find_python_by_version

# 查找Python 3.9环境
python39_envs = find_python_by_version("3.9")

运行代码字符串

from pyfinder import run_code_with_python

code = """
import sys
print(f"Hello from Python {sys.version}!")
"""

# 使用指定Python运行代码字符串
result = run_code_with_python("python3.9", code)
print(result["stdout"])

缓存管理

from pyfinder import clear_cache, refresh_cache

# 清空缓存
clear_cache()

# 刷新缓存
refresh_cache()

命令行界面

PyFinder也提供了命令行界面:

# 列出所有Python环境
pyfinder list

# 使用指定Python运行脚本
pyfinder run python3.9 script.py --args

# 查看帮助
pyfinder --help

示例

多文件模式示例

参见 examples/multi_file_example/ 目录,其中包含:

  • main.py: 主入口文件,展示如何使用PyFinder运行其他脚本
  • script.py: 被运行的脚本文件

运行示例:

cd examples/multi_file_example
python main.py

单文件模式示例

参见 examples/single_file_example.py,展示如何使用PyFinder自动解析并运行当前代码。

运行示例:

python examples/single_file_example.py

API参考

核心函数

  • find_python_environments(refresh_cache=False): 查找所有Python环境
  • find_python_by_type(env_type, refresh_cache=False): 按类型查找Python环境
  • find_python_by_version(version, refresh_cache=False): 按版本查找Python环境
  • find_python_by_name(name, refresh_cache=False): 按名称查找Python环境
  • run_with_python(python_identifier, script_path, ...): 使用指定Python运行脚本文件
  • auto_run_with_python(python_identifier, ...): 自动解析当前代码并运行
  • run_code_with_python(python_identifier, code, ...): 使用指定Python运行代码字符串

环境信息字典

每个Python环境信息包含以下字段:

  • path: Python可执行文件路径
  • type: 环境类型 (system, uv, venv, conda)
  • name: 环境名称
  • version: Python版本
  • executable: 是否可执行

运行结果字典

运行结果包含以下字段:

  • success: 是否成功
  • returncode: 返回码
  • stdout: 标准输出
  • stderr: 标准错误
  • exception: 异常名称(如果有)

开发

安装开发依赖

pip install -e ".[dev]"

运行测试

pytest

代码格式化

black pyfinder tests

类型检查

mypy pyfinder

贡献

欢迎贡献代码!请遵循以下步骤:

  1. Fork本项目
  2. 创建特性分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m 'Add some amazing feature')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 创建Pull Request

许可证

本项目采用MIT许可证 - 详见 LICENSE 文件

更新日志

0.1.0 (2024-01-01)

  • 初始版本发布
  • 支持搜索系统Python、UV、venv和Conda环境
  • 实现多文件和单文件运行模式
  • 添加缓存机制
  • 提供完整的测试套件

支持

如果您遇到问题或有建议,请:

  1. 查看 FAQ
  2. 搜索 已有问题
  3. 创建 新问题

致谢

感谢所有贡献者和用户的支持!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyfinder_tool-0.2.0.tar.gz (24.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyfinder_tool-0.2.0-py3-none-any.whl (19.2 kB view details)

Uploaded Python 3

File details

Details for the file pyfinder_tool-0.2.0.tar.gz.

File metadata

  • Download URL: pyfinder_tool-0.2.0.tar.gz
  • Upload date:
  • Size: 24.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pyfinder_tool-0.2.0.tar.gz
Algorithm Hash digest
SHA256 513519710d9add38c34abfbe0088246b6e7298c5f517a4f98a06f1d5e6cbec82
MD5 e3b822d1cb4f91326d565efd5381a696
BLAKE2b-256 fdab16bfcd45f55750a0622c95d43fdfffe3aa4da57e64e40401d3dd25dc729c

See more details on using hashes here.

File details

Details for the file pyfinder_tool-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: pyfinder_tool-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 19.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.0

File hashes

Hashes for pyfinder_tool-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c2882e69fcd9cad3316d3155c2e99b8ae56f56405bca89d2a896d09eee414428
MD5 e67a3e250f760f301e40338af302df2d
BLAKE2b-256 e8c10e22a87daba60611ce56d5700717445377f84288b28115e12099a96d9c41

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page