首页 > 编程语言 > 详细

命令行运行python显示no module named xxx的解决方案

时间:2020-07-20 15:01:53      阅读:285      评论:0      收藏:0      [点我收藏+]

1. 问题

在pycharm里面编写python代码,引用了自己的模块。在pycharm里面没显示异常,但在终端(命令行)执行时显示no module named xxx(引用的自己的模块)

为什么在pychrarm里就没问题,到终端就找不到了呢?

ImportError: No module named ‘xxx‘

2. 解决思路

  • 当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。搜索路径是一个解释器会先进行搜索的所有目录的列表。

  • 当你导入一个模块,Python 解析器对模块位置的搜索顺序是:

    1. 当前目录

    2. 如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。

    3. 如果都找不到,Python会察看默认路径。

    模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。

  • 可以想到pycharm的sys.path和系统默认的是不是有什么区别?

    1. 查看系统的sys.path(在Python Console输入)

      import sys
      print(sys.path)
      
    2. 查看pycharm的sys.path(在pycharm中新建py文件并执行)

      import sys
      print(sys.path)
      
    3. 比较两者的输出可以发现:

      Pycharm的默认路径包含 Project 目录,而终端的输出不包含。也就解释了为什么在 pycharm 里面可以执行,在 terminal 终端里面就会出现 no module name xxx的错误。

3. 解决方案一(永久)

  1. 在 site-packages 文件中增加 Pycharm 文件路径。(windows)

    cd C:\Users\UserName\AppData\Local\Programs\Python\Python38\Lib\site-packages

  2. 修改(或新建)pycharm.pth

    C:\Users\UserName\PycharmProjects  // 在里面加上你的项目目录 
    

4. 解决方案二(暂时)

  1. 在引用你的模块的时候在前面添加
    import sys
    sys.path.append(‘你的项目名称‘)
    

5. 测试

我反正测试成功,能在终端正常执行了。-_-

命令行运行python显示no module named xxx的解决方案

原文:https://www.cnblogs.com/fengscox/p/13344378.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!