问题简述:
在PyCharm编辑器中,引入模块时,可正常运行。
但使用命令行脚本时,报错:ModuleNotFoundError: No module named ‘ipproxys.items’
从文件夹层级上看,模块’ipproxys.items’还有一个父级普通文件夹’ipproxys’
解决过程:
1、猜想是PyCharm做了特殊处理,在py文件中打印sys.path,发现系统路径的环境变量确实有新增路径:普通文件夹’ipproxys’
2、在引入模块前,增加系统路径的环境变量(注意:一定要在引入前,python是解释型语言)
import sys
sys.path.append('E:\\PycharmProjects\\wlzcdemo\\ipproxys')
from ipproxys.items import IpProxyItem
再次运行脚本,成功了
总结:
通过网上搜集资料整理如下:
1、通过在脚本中加入路径,练习用或一两个文件无所谓,在正式项目中,当文件较多时不方便,也增加了代码耦合性。
2、一次性增加到系统路径中,有两种方法
1)调整系统环境变量,或将代码统一放到系统环境变量目录中
2) 在python安装路径里的site-packages文件夹下,新建一个*.pth 文件,比如:test.pth
将用到的非当前路径下的模块路径写到文件中,一行一个路径