You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何组织Python包文件结构,实现开发时跳过src目录导入?

如何在开发时直接导入src目录下的Python包(无需每次安装)

你当前的Python包将核心代码放在src/子目录,构建wheel包正常,但开发时希望不用每次修改都本地安装,直接通过from mylib import foo导入,而非from mylib.src import foo,可以用以下几种方法解决:

方法1:使用pip可编辑安装(推荐)

这是Python包开发的标准做法,将包以可编辑模式安装后,Python会直接读取你开发目录中的代码,修改后无需重新安装。

在包含pyproject.toml的mylib/根目录下执行:

pip install -e .

执行完成后,你就能直接用from mylib import foo导入模块,完全符合需求。

方法2:手动添加Python模块搜索路径

如果不想通过pip安装,可直接将src/目录加入Python的模块搜索路径:

临时生效(仅当前会话)

在Python交互环境或测试脚本开头添加:

import sys
sys.path.append("/绝对路径/to/mylib/src")

替换路径为你本地src目录的实际绝对路径。同时要确保src/__init__.py中已导出foo模块,比如添加from . import foo,之后就能直接from mylib import foo。

永久生效

通过设置PYTHONPATH环境变量实现:

  • Linux/macOS:
    终端临时生效:
    export PYTHONPATH="/绝对路径/to/mylib/src:$PYTHONPATH"
    
    永久生效则将上述命令添加到~/.bashrc、~/.zshrc等shell配置文件中。
  • Windows:
    命令提示符临时生效:
    set PYTHONPATH=C:\绝对路径\to\mylib\src;%PYTHONPATH%
    
    永久生效需在系统环境变量中新增PYTHONPATH,值设为C:\绝对路径\to\mylib\src。

方法3:确保pyproject.toml配置正确(配合可编辑安装)

如果使用setuptools作为构建后端,需在pyproject.toml中指定包的位置,确保pip install -e .能正确识别结构:

[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"

[project]
name = "mylib"
version = "0.1.0"
packages = ["mylib"]
package_dir = {"mylib" = "src"}

这样配置后,构建工具会明确mylib包对应src/目录,不管是构建wheel还是开发时的可编辑安装,都能正确映射包结构。

内容的提问来源于stack exchange,提问作者Sven

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 03:15:12