python终端命令执行提示找不到自定义模块

@

目录

    描述一下遇到的问题:

    平常在用pyhton做开发写代码的时候,我们大多数都是直接是编辑器中操作的(pycharm、eclipse、sublime等),其中免不了各个模块之间的一些导入方法调用,以下是我的目录结构:

    在编辑器中我们导入后引用是没问题的可以正常运行,但是当我们直接在终端执行py脚本的时候就会报出 “from readexcel import ReadExcelE ModuleNotFoundError: No module named 'readexcel'”之类找不到模块的错误。
    在这里插入图片描述

    这个导入的是我们的本地的文件,报的错其实就是终端找不到我们本地的导入的这个文件。
    因为编辑器运行的时候,都会检索我们的整个工程目录,把一些目录都添加到sys.path中,自然运行起来的时候,都能够找到对应的模块py文件。
    而我们在终端执行某个文件的时候都是直接运行指定文件的,缺少需要检索的路径,所以终端无法找到我们要导入的文件。
    在网上查的一些资料说的都很概括,按照网上的一些教程在win环境配置没问题的,但是某些方法在Mac环境中同样的方法就不适用了。

    #调用os,sys模块
    import os  
    import sys
     
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath或者os.path.dirname(__file__)))
    sys.path.append(BASE_DIR)
     
    from 模块路径.模块文件 import 类1, 类2, 类3
     
    # xxxx你的代码
    

    比如上边这个查到的方法,在win环境中是可用的,也可以直接使用sys.path.append(文件路径/文件名)进行添加,但是同样的方法在Mac上边怎么都不行。
    网上很多查到的此类的添加的是当前文件的路径,而我们要添加的是所要导入文件的路径,并没有很清晰的阐述,所以一定要注意
    我试了几次以后发现Mac上添加文件的绝对路径上级的目录名后执行成功

    #在要执行的文件中添加此路径
    sys.path.append("/xxxxxx/pyhton_pytest_Demo/Demo_API_1/lib/")
    

    小伙伴们在遇到此类问题的时候可以试试,需要多关注一下添加的是文件目录还是直接精确到文件名

    posted @ 2022-04-01 19:25  回忆式~过去  阅读(496)  评论(0编辑  收藏  举报