shell(或命令行)运行python模块时提示No module named xxx 您所在的位置:网站首页 python引用pyspark出错 shell(或命令行)运行python模块时提示No module named xxx

shell(或命令行)运行python模块时提示No module named xxx

2024-01-25 16:09| 来源: 网络整理| 查看: 265

问题描述

如下图所示,用红框标记的代码,直接在pycharm中运行,不会提示错误,因为需要引用的python包我们已经定义了 在这里插入图片描述 但是如果在shell脚本(或命令行)中运行这段代码,发现提示找不到这个模块,这是为什么呢 在这里插入图片描述

原因分析

(本部分可以不用看,直接看解决方法) 原因在于在pycharm中运行时,会将当前项目的整个文件夹路径都作为包的搜索路径,但在shell脚本(或命令行)中只搜索当前路径,搜索区域分别对应下图左和右 在这里插入图片描述 我们通过代码来进一步证实该论断 在出问题的那段代码上面加入

import sys print("\n".join(sys.path))

sys.path的值是环境变量,即指定模块的搜索路径的字符串列表。通俗来说,也就是它是一个list变量,默然情况下python导入文件或者模块的话,他会先在sys.path里找模块的路径。如果没有的话,程序就会报错。 如下图所示 在这里插入图片描述 还是这段代码,我们在pycharm中运行,会显示 在这里插入图片描述 在shell脚本(或命令行)中运行,会显示 在这里插入图片描述 证实了上文的说法

解决方法 提供两种方法 方法一:改动sys.path,将整个项目的文件夹包括进去 代码为

import sys sys.path.append('D:\desktop\PrismNet')

如下图所示 在这里插入图片描述 方法二:统一脚本的运行路径是project的根文件夹,即每次都在project根文件夹下新建一个脚本,比如叫main.py。 它什么也不做,仅仅是将c.py导入进来。

有什么问题,欢迎大家留言讨论~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有