pycharm 导入自定义模块提示 no module name

来源:互联网 发布:php 百度地图api demo 编辑:程序博客网 时间:2024/06/05 16:07

pycharm 导入自定义模块提示 no module named

参考链接
http://blog.csdn.net/pwc1996/article/details/52577148

问题描述

在 pycharm 的 terminal 界面执行某脚本的时候,提示:

ImportError: No module named '*******'

但是在 pycharm 直接运行文件是可以执行的,不会报错。

原因在于 pycharm 和 python3.5 默认的模块导入目录不一样。

  • 系统默认的 path
>>> import sys>>> sys.path['', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages']
  • 在 pycharm 中创建一个文件
    test.py
import sysprint(sys.path)

输出结果:

['/Users/citizen_wang/Documents/PycharmProject/learnpython', '/Users/citizen_wang/Documents/PycharmProject/learnpython', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python35.zip', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/plat-darwin', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/lib-dynload', '/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages']

比较两者的不同,会发现 PycharmProject 的默认路径,会包含 Project 目录,也就解释了为什么在 pycharm 里面可以执行,但是在 terminal 终端里面就会包 no module name 的错误。

解决方法

在 site-packages 文件中增加 Pycharm 文件路径。

cd /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages
  • site-packages 是 python 默认的模块目录
vim pycharm.pth# 将 pycharmproject 项目的绝对路径写入到文件中。/Users/citizen_wang/Documents/PycharmProject/

测试

这里写图片描述
比如要导入 items 中的 CnblogspiderItem

from learnpython.cnblogSpider.cnblogSpider.items import CnblogspiderItem

虽然是成功了,但是感觉有点怪怪的。


各位看客有更好的方法,也请留言评论,不胜感激。

阅读全文
0 0