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

Python项目结构优化:解决lib模块导入失败问题

解决Python无法导入lib目录模块的问题

先明确你的项目结构(按描述整理):

项目根目录/
└── My-Fancy-Project-Name/
    └── src/
        ├── bin/
        │   └── crawl_script.py  # 你的可执行脚本
        └── lib/
            ├── __init__.py
            └── crawler_utils.py  # 共享库模块

方法1:脚本内添加Python路径

在bin目录下的脚本开头加入以下代码,将src目录纳入Python模块搜索路径:

import sys
from pathlib import Path

# 定位到src目录
src_dir = Path(__file__).parent.parent
sys.path.append(str(src_dir))

# 正常导入lib模块
from lib.crawler_utils import some_function

方法2:使用相对导入(需按包结构运行)

确保src、bin、lib目录下都存在空的__init__.py文件(标记为Python包),然后在脚本中用相对导入:

from ..lib.crawler_utils import some_function

注意这种方式必须从项目指定层级运行脚本,比如:

cd My-Fancy-Project-Name
python -m src.bin.crawl_script

不能直接进入bin目录执行python crawl_script.py。

方法3:临时设置环境变量

运行脚本前,将src目录加入PYTHONPATH:

Linux/macOS

cd My-Fancy-Project-Name
export PYTHONPATH=$(pwd)/src
python src/bin/crawl_script.py

Windows(PowerShell)

cd My-Fancy-Project-Name
$env:PYTHONPATH = "$(Get-Location)\src"
python src/bin/crawl_script.py

该方式每次新开终端都需要重新设置,适合临时测试。

方法4:安装为可编辑包(推荐长期项目)

在My-Fancy-Project-Name目录下创建pyproject.toml文件:

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

[project]
name = "my-fancy-crawler"
version = "0.1.0"
packages = ["src.lib"]
scripts = ["src/bin/crawl_script.py"]

然后执行命令将项目安装为可编辑模式:

pip install -e .

之后可在任意目录直接运行脚本,且代码修改会即时生效,适合长期维护的项目。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 02:09:55