Python可编辑库安装成功后无法引用问题求助
问题描述
使用Python 3.11,遵循setuptools开发模式与src布局创建可编辑库项目,项目结构如下:
\library: \Include \Lib \Scripts \src: \ry: __init__.py(为空) tests.py(包含一个函数) pyproject.toml pyvenv.cfg README.md
pyproject.toml配置内容:
[build-system] requires = ["setuptools >= 61.0"] build-backend = "setuptools.build_meta" [tool.setuptools.packages.find] where = ["src"] [project] name = "ry" version = "0.0.1" authors = [ { name="Jorge", email="myname@emaildomain.com" }, ] description = "A small example package" readme = "README.md" requires-python = ">=3.11" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] [project.urls]
激活虚拟环境后,进入\library目录执行命令:
python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --editable .
安装成功后,在虚拟环境中的testLibrary.py文件里尝试import ry或from ry import tests均无法引用该库。
问题分析与解决方案
问题核心是项目源码文件与虚拟环境目录混杂在一起,导致pip在可编辑安装时无法正确识别包路径,Python解释器也无法定位到对应的包。
解决步骤:
- 重新整理项目结构,将虚拟环境与项目源码分离,标准结构示例:
\ry_project: \venv: # 存放虚拟环境的Include、Lib、Scripts、pyvenv.cfg \src: \ry: __init__.py tests.py pyproject.toml README.md testLibrary.py # 测试文件放在项目根目录,不要放在虚拟环境内
- 激活
venv虚拟环境,进入\ry_project目录,重新执行可编辑安装命令:
python -m pip install --editable .
- 验证安装:执行
pip list查看是否存在ry包,且版本显示为0.0.1 (editable from [你的项目src路径])。 - 运行测试文件
testLibrary.py,此时import ry或from ry import tests即可正常导入。
额外检查点:当前pyproject.toml中[tool.setuptools.packages.find]的where = ["src"]配置符合src布局要求,无需修改。
内容的提问来源于stack exchange,提问作者user2368631
相关产品推荐
相关产品推荐

