报错原因:windows的cmd环境默认为gbk编码,pip默认用utf8编码。而在Linux和Mac中,terminal环境默认的是utf8编码,所以不会报错。
方法1: 在你的python目录: Python27\Lib\site-packages下,新 建一个 sitecustomize.py 文件,
内容为:import sys sys.setdefaultencoding('gbk')
保存,然后重新运行安装命令,即可成功安装。
方法2: 更改Python27\Lib目录下的 mimetypes.py 文件,找到大概256行(你可以用Notepad++的搜索功能)的 default_encoding = sys.getdefaultencoding(),在这行前面添加三行内容:ifsys.getdefaultencoding() !='gbk': reload(sys) sys.setdefaultencoding('gbk')注意格式并保存,重新运行cmd命令。
但是我使用这种方法失败了,你们可以尝试一下~
方法3: 在python/lib/site.py文件中加入(在报错的页面添加):
import sys
reload(sys)
sys.setdefaultencoding('gbk')(括号里面的内容填写所需的编码格式)
这种办法我没有尝试,是在网上看到的,也一并整理了。
如果后面两种方法有效的话,请一定记得与我分享!
如图,三个模块的关系:模块A导入模块B,而模块B导入模块C执行模块A时,会报错ModuleNotFoundError: No module named xxx,说找不到模块C。
于是就打开模块B查看,发现导入模块C是正常的,这就让人很头疼
模块B和模块C是同一个包,而模块A又是在另一个包。同个包内的模块B可以用相对路径找到模块C,不同包的模块A则不能。
方案一:项目根目录为起始路径导入包
在IDE中执行python程序,编译器会自动把当前项目的根目录加入到包查找路径中,可以理解为加到PYTHONPATH下,所以导入写法如下:
方案二:导包时,把目标模块的路径加入包查找路径中
推荐使用方案一,养成好习惯,从项目根目录开始导包。