pycharm 导入自定义模块提示 no module name
·
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 sys
print(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
虽然是成功了,但是感觉有点怪怪的。
各位看客有更好的方法,也请留言评论,不胜感激。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)