python命令行运行找不到自定义模块

报错ImportError: No module named 'XXX'

可能小伙伴们在pycharm运行一切正常,但是到命令行中运行py文件,就会报错

在python中,一个py文件就是一个模块,导入模块等于导入文件。

是文件,就有文件路径,所以这个情况的出现,就是本质上就是找不到文件

为什么pycharm能够正常运行呢?

因为pycharm在每次运行的时候,都会检索整个工程目录,把一些目录都添加到sys.path中,自然运行起来的时候,都能够找到对应的模块py文件。

为什么命令行找不到模块?

因为命令行执行时,往往都是直接运行某个py文件,缺少路径检索的步骤(需要我们加上)

前面也说了,模块找不到,实际上就是文件找不到。

这个时候,我们就需要自己在代码中加上需要引入的模块路径,就能够找到模块了。

import os
import sys

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

from 模块路径.模块文件 import 类1, 类2, 类3

# xxxx你的代码

在需要执行的py文件中,加上这段代码。就是在import模块文件前,先将模块路径,添加到sys.path,就能够正常引入模块。

命令行运行文件一切正常!

可能还要小伙伴失败,这个原因就是出在模块路径上了。

__file__ 。是指当前文件。

os.path.abspath(__file__):这个是获取文件的基础路径。
os.path.dirname(dir):这个是获取文件的文件夹目录(相当于拿到了文件夹)。

基础路径一般不会出错,但是文件夹目录往往都会出错,需要目录正确。

每使用一次os.path.dirname(dir),就是向上走一层,就需要不断地嵌套os.path.dirname(dir),一层一层向上走,走到工程的根目录下,就可以了。

  • 16
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
您好!当您遇到 Python 不到模块的问题时,您可以尝试以下几个步骤来解决: 1. 确认模块已经安装:首先,确保您已经正确地安装了需要的模块。您可以使用 pip 或者 conda 命令来安装模块。例如,如果您想要安装一个名为 `numpy` 的模块,可以在命令行运行 `pip install numpy`(或者 `conda install numpy` 如果您使用的是 conda 环境)。请确保您在命令行执行命令时使用了正确的 Python 环境。 2. 检查模块名称拼写:确认您在代码中正确地拼写了模块的名称。Python 是区分大小写的,所以模块名称的大小写必须与安装的模块一致。 3. 检查模块路径:有时候,Python 可能无法到安装的模块的路径。您可以尝试添加模块所在的目录到 Python 的搜索路径中。可以通过在代码中使用 `sys.path.append("module_path")` 来添加自定义模块路径。 4. 确认环境变量:如果您在安装 Python 模块时使用了虚拟环境(例如 virtualenv 或 conda 环境),请确保您正在使用正确的环境。 5. 重新启动 Python 解释器:有时候,Python 在安装新模块后可能需要重新启动才能识别到新安装的模块。您可以尝试退出 Python 解释器,然后重新启动它,再次运行您的代码。 如果上述步骤都没有解决问题,可能会有其他原因导致模块不到。在这种情况下,提供更多详细的错误信息将有助于更好地理解问题的根本原因。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值