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

为何无法从其他目录导入Python函数?多系统均遇此问题

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

问题原因

Python导入模块时,只会在sys.path列表中的目录里查找模块。直接运行sad/main.py时,当前脚本所在的sad目录会被加入sys.path,但项目根目录(test)不在其中,因此无法找到同级的asd模块。

解决方案

方法1:动态添加项目根目录到sys.path

在main.py开头添加以下代码,将项目根目录加入Python的模块查找路径:

import sys
import os

# 回溯到项目根目录并添加到查找路径
project_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_root)

# 正常执行导入逻辑
from asd.message import message_func, email

print(message_func())
print(email)

方法2:设置环境变量PYTHONPATH

把项目根目录添加到PYTHONPATH环境变量,让Python全局识别该目录下的模块:

  • Linux/macOS:终端执行
    export PYTHONPATH=/home/ma1lor/test:$PYTHONPATH
    
    若要永久生效,可将命令添加到~/.bashrc或~/.zshrc文件中。
  • Windows:命令提示符执行
    set PYTHONPATH=C:\path\to\test;%PYTHONPATH%
    
    永久生效可通过系统属性-环境变量添加PYTHONPATH变量。

方法3:以项目根目录为工作目录运行脚本

切换到项目根目录,用模块方式运行main.py:

cd ~/test
python -m sad.main

这种方式下,项目根目录会自动被加入sys.path,无需修改代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 06:31:01