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

Python项目中如何在非主目录实现跨目录模块导入?

解决Python跨目录模块导入问题

方法1:手动将项目根目录加入Python搜索路径

在dir2的脚本开头添加以下代码,把项目主目录(dir1和dir2的共同父目录)添加到Python的模块搜索路径中:

import sys
import os
# 获取项目根目录的绝对路径
root_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(root_dir)

# 此时可正常导入
from dir1 import func1

方法2:通过环境变量设置搜索路径

在运行dir2内的脚本前,先设置PYTHONPATH环境变量,将项目根目录纳入搜索范围:

Linux/macOS 终端

export PYTHONPATH=/你的项目根目录绝对路径:$PYTHONPATH
python dir2/你的脚本文件名.py

Windows 命令提示符

set PYTHONPATH=你的项目根目录绝对路径;%PYTHONPATH%
python dir2\你的脚本文件名.py

Windows PowerShell

$env:PYTHONPATH = "你的项目根目录绝对路径;" + $env:PYTHONPATH
python dir2\你的脚本文件名.py

方法3:将项目作为可安装包(长期项目推荐)

在项目根目录创建setup.py文件,把项目打包为可安装模块,再以开发模式安装:

  1. 在根目录新建setup.py:
from setuptools import setup, find_packages

setup(
    name="your_project_name",
    version="0.1",
    packages=find_packages(),
)
  1. 执行开发安装命令:
pip install -e .

完成后,无论在哪个目录运行脚本,都能直接使用from dir1 import func1导入。

方法4:始终从项目根目录运行脚本

保持从项目主目录执行dir2内的脚本,Python会自动将根目录加入搜索路径:

python dir2/你的脚本文件名.py

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 06:34:55