Pycharm中Run、Python Console和Terminal中的搜索路径问题(解决导入模块/第三方库的报错 xxx Not found)

在Pycharm中,即可通过Run或Terminal直接运行.py文件,也可通过Python Console交互式地运行多行代码。但三者的默认路径不一样,搞不清楚的话容易报错 “xxx not found”

以如下项目架构为例:

假设要运行的test.py里包含命令:

import Module_A
from Module_B import submodule_B
from Module_C.A_class import a_class
  1. 若在Run中运行test.py,其自动将项目路径(Project_name的路径)和当前工作目录(Module_C的路径)添加到搜索路径列表中,所以上述3条命令都不会报错;
  2. 若在Python Console中运行上述命令,由于Python Console与项目绑定,虽然其默认路径中包含项目路径(Project_name的路径)而不包含当前工作目录(Module_C的路径),但上述3条命令也不会报错;
  3. 若右键test.py,选择open In->Terminal,则打开的terminal已经将路径定位到当前工作目录(Module_C的路径),但其路径搜索列表中不包括项目路径(Project_name的路径),所以运行上述命令会报错找不到Module_A,Module_B和Module_C,但将第3条命令改为from A_class import a_class不报错。

为了在终端Terminal运行上述命令,方法之一是在test.py文件内,在上述命令之前将项目路径添加到系统搜索路径中,这可以通过以下任一方法来实现:

法一:

import sys
import os

sys.path.append(os.path.dirname(os.getcwd()))

法二:

import sys
import os

sys.path.append(os.getcwd() + '/..')

法三:

import sys
import os

sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值