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

如何通过Linux终端将src目录标记为Sources Root解决Python导入问题

解决终端运行Python文件的模块导入问题

核心原因

PyCharm标记src为Sources Root,本质是把src目录和项目根目录同时加入了Python的模块搜索路径(sys.path),所以两种导入方式都能生效。终端运行时需要手动配置这个路径,无需修改现有代码。

解决方案

假设你的项目结构如下:

your_project/
├─ src/
│  ├─ main.py
│  └─ shared/
│     └─ timer.py
└─ ...

方法一:临时设置PYTHONPATH(终端会话内有效)

在项目顶级目录(your_project/)下执行对应系统的命令,将项目根和src目录加入模块搜索路径:

  • Linux/macOS:
    export PYTHONPATH="$PWD:$PWD/src"
    
  • Windows(命令提示符):
    set PYTHONPATH=%cd%;%cd%\src
    
  • Windows(PowerShell):
    $env:PYTHONPATH = "$(Get-Location);$(Get-Location)\src"
    

之后直接运行文件即可:

python src/main.py

或者用模块模式运行(注意不要加.py后缀,这是你之前报错的原因之一):

python3.8 -m src.main

方法二:在代码中自动添加路径(无需手动设置环境变量)

在main.py的最顶部(所有导入语句之前)添加以下代码,自动将项目根和src目录加入sys.path:

import sys
from pathlib import Path

# 获取项目根目录(src的父目录)和src目录的绝对路径
project_root = Path(__file__).parent.parent.resolve()
src_dir = Path(__file__).parent.resolve()

# 确保路径已加入搜索列表
if str(project_root) not in sys.path:
    sys.path.append(str(project_root))
if str(src_dir) not in sys.path:
    sys.path.append(str(src_dir))

添加后,无论从哪个目录运行main.py,两种导入方式都能正常工作。

方法三:永久设置PYTHONPATH(不推荐,易影响其他项目)

将项目根和src目录的绝对路径添加到系统的PYTHONPATH环境变量中:

  • Linux/macOS:编辑~/.bashrc或~/.zshrc,添加:
    export PYTHONPATH="/绝对路径/your_project:/绝对路径/your_project/src"
    
    执行source ~/.bashrc或source ~/.zshrc生效。
  • Windows:在系统环境变量中添加PYTHONPATH,值为C:\绝对路径\your_project;C:\绝对路径\your_project\src。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 12:15:28