参考链接
http://blog.csdn.net/pwc1996/article/details/52577148
在 pycharm 的 terminal 界面执行某脚本的时候,提示:
ImportError: No module named '*******'
但是在 pycharm 直接运行文件是可以执行的,不会报错。
原因在于 pycharm 和 python3.5 默认的模块导入目录不一样。
>>> 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']
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
vim pycharm.pth
# 将 pycharmproject 项目的绝对路径写入到文件中。
/Users/citizen_wang/Documents/PycharmProject/
比如要导入 items 中的 CnblogspiderItem
from learnpython.cnblogSpider.cnblogSpider.items import CnblogspiderItem
虽然是成功了,但是感觉有点怪怪的。