在pycharm里面编写python代码,引用了自己的模块。在pycharm里面没显示异常,但在终端(命令行)执行时显示no module named xxx(引用的自己的模块)
为什么在pychrarm里就没问题,到终端就找不到了呢?
ImportError: No module named ‘xxx‘
当解释器遇到 import 语句,如果模块在当前的搜索路径就会被导入。搜索路径是一个解释器会先进行搜索的所有目录的列表。
当你导入一个模块,Python 解析器对模块位置的搜索顺序是:
当前目录
如果不在当前目录,Python 则搜索在 shell 变量 PYTHONPATH 下的每个目录。
如果都找不到,Python会察看默认路径。
模块搜索路径存储在 system 模块的 sys.path 变量中。变量里包含当前目录,PYTHONPATH和由安装过程决定的默认目录。
可以想到pycharm的sys.path和系统默认的是不是有什么区别?
查看系统的sys.path(在Python Console输入)
import sys
print(sys.path)
查看pycharm的sys.path(在pycharm中新建py文件并执行)
import sys
print(sys.path)
比较两者的输出可以发现:
Pycharm的默认路径包含 Project 目录,而终端的输出不包含。也就解释了为什么在 pycharm 里面可以执行,在 terminal 终端里面就会出现 no module name xxx的错误。
在 site-packages 文件中增加 Pycharm 文件路径。(windows)
cd C:\Users\UserName\AppData\Local\Programs\Python\Python38\Lib\site-packages
修改(或新建)pycharm.pth
C:\Users\UserName\PycharmProjects // 在里面加上你的项目目录
import sys
sys.path.append(‘你的项目名称‘)
我反正测试成功,能在终端正常执行了。-_-
命令行运行python显示no module named xxx的解决方案
原文:https://www.cnblogs.com/fengscox/p/13344378.html