2019独角兽企业重金招聘Python工程师标准>>>

在安装jsdom模块的过程中遇到这么一个MSB4025错误:(win8.1 下,已经安装了vs2013 for desktop express版)

error MSB4025: 未能加载项目文件,给定编码中的字符无效

在网上查了一些资料,说是因为编码的问题,因为在windows下使用,用户名是中文,导致在生成vcxproj文件时,有些依赖路径里包含了中文字符。好吧,我承认我安装模块的路径的确是包含中文名称......

windows下的中文默认用的是GBK编码,而vcxproj文件默认的编码方式是utf-8。node的gyp工具,并没有很好的处理多语言编码的问题。这样导致生成的vcxproj文件是ANSI编码,内部的中文字符是GBK编码,等到调用VS 2013编译模块时,就会导致VS2013无法正确使用vcxproj文件,导致编译安装失败。

nodejs的gyp工具使用的python,在安装目录下可以找到gyp相关的python代码,修改其中用于生成vcxproj的代码,使其用utf-8编码生成文件内容并存储,即可解决此问题。

网上找到资料说是修改 C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\node-gyp\gyp\pylib\gyp>下的 easy_xml.py文件(这里的 ‘C:\Program Files (x86)\nodejs’指的是本人nodejs的安装路径,实际操作中要换成对应的路径,一般是‘C:\Program Files\nodejs‘)

找到 “# It has changed, write it”这一行,将下面的判断代码修改,原来是:

# It has changed, write itif existing != xml_string:f = open(path, 'w' ,'utf_8_sig')f.write(xml_string)f.close()

换成下面的代码:

# It has changed, write itif existing != xml_string:if path.endswith('vcxproj'):#use utf_8 encoding to generate vcxproj filef = codecs.open(path, 'w', 'utf_8_sig')#convert GBK string to Unicode string to ensure the later utf_8 encodingf.write(xml_string.decode('gbk'))else:f = open(path, 'w')f.write(xml_string)f.close()

值得注意的是,代码中使用到了“codecs.open”,所以要再开头处引入codecs,要不然会报错说变量找不到,在开头处加上:

import codecs

完成后保存,在运行一下安装jsdom的命令,发现已成功安装。

转载于:https://my.oschina.net/tearlight/blog/279797

nodejs安装jsdom模块出现MSB4025错误相关推荐

  1. nodejs安装ffi模块调用dll详解

    网上很多关于nodejs安装ffi的模块讲的条理实在太不清晰了,nodejs使用的VC++运行库对于不同的nodejs版本是不一致的.nodejs10需要的vs版本是vs2015. 1 安装vs201 ...

  2. nodejs安装及npm模块插件安装路径配置

    在学习完js后,我们就要进入nodejs的学习,因此就必须配置nodejs和npm的属性了. 我相信,个别人在安装时会遇到这样那样的问题,看着同学都已装好,难免会焦虑起来.于是就开始上网查找解决方案, ...

  3. 升级nodejs版本 安装n模块报错 npm ERR! notsup Unsupported platform

    如何升级nodejs版本 首先安装n模块, 输入npm install -g n n模块专门用来管理nodejs的版本. 如果出现npm ERR! notsup Unsupported platfor ...

  4. 明明安装了模块,还是出现 错误 ImportError: No module named ‘pandas‘ 原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解

    明明安装了模块,还是出现 错误 ImportError: No module named 'pandas'  原因LINUX上安装了多个python环境,将脚本中python 改为python3问题解 ...

  5. nodejs安装不好_【nodejs安装错误2503】nodejs安装2503_nodejs 2503-系统城

    2017-12-27 14:50:11 浏览量:959 最近,一位windows10系统用户反馈自己在电脑中安装nodejs时,突然遇到提示错误代码2503,因为错误提示是英文界面所有不知道到底是那里 ...

  6. Windows系统下nodejs安装及配置

    关于nodejs中文站,眼下活跃度最好的知识站应该是http://www.cnodejs.org/ ,而http://cnodejs.org/则活跃度较低.Express.js是nodejs的一个MV ...

  7. python psutil库安装_安装psutil模块报错安装python-devel

    psutil/_psutil_linux.c:9:20: 错误:Python.h:没有那个文件或目录 In file included from psutil/_psutil_linux.c:19: ...

  8. Express接口综合案例(创建项目、配置常用中间件、路由设计、提取控制器模块、配置错误统一处理中间件、用户注册的数据验证,密码加密)

    一.创建项目 二.目录结构 三.配置常用中间件 3.1 解析请求体 express.json() express.urlencoded() 3.2 日志输出 morgan() 3.3 为客户端提供跨域 ...

  9. NodeJS 与第三方模块 mysql(基本操作)

    文章目录 参考 描述 mysql 模块 连接数据库 检测 基本操作 查询 数据与代码分离原则 占位符 插入 另一种姿态 修改 另一种姿态 删除 标记删除 参考 项目 描述 哔哩哔哩 黑马程序员 搜索引 ...

最新文章

  1. 15综合案例之学成在线主页设计
  2. 英语发音规则---N字母
  3. Python回顾与整理10:模块
  4. php method_exists 检测类中是否包括函数
  5. nagios系列(一)centos6.5环境部署nagios服务端
  6. Android自定义类似ProgressDialog效果的Dialog
  7. Django笔记7(通用视图)
  8. 选PMP培训机构看什么
  9. 【原创】 禁用ctfmon.exe 禁止ctfmon.exe自动启动
  10. 面试必问的 Redis:数据结构和基础概念
  11. 【读书笔记】统计学:从数据到结论 第七章
  12. 有盘和无盘服务器,网吧系统的终极解决之道:无盘系统+有盘(转)
  13. 【USACO题库】3.4.4 Raucous Rockers“破锣摇滚”乐队
  14. 模块七:mixer模块
  15. 苹果也能做深度学习了!PyTorch宣布支持苹果M1芯片GPU加速:训练快6倍,推理提升21倍...
  16. excel插件方格格子
  17. 神马笔记 版本1.8.0——删除笔记/文件夹·技术细节篇
  18. pd.concat()和pd.merge()
  19. 游戏中随机地图的实现
  20. 微信小程序 - video组件poster无效 / 视频播放列表

热门文章

  1. 解耦的故事(一)-tmfc的开关(转)
  2. mipi屏在内核可以显示logo但是u-boot无法显示的问题【转】
  3. 高效搭建Storm全然分布式集群
  4. 郑晔:代码之丑 无状态方法
  5. Office 2003出现发送错误报告怎么办
  6. Ubuntu8.10下修复FC7系统的home分区
  7. [MySQL FAQ]系列 -- 为何授权不对
  8. 《与编码人员一起工作》作者访谈
  9. Python 运行 Python hello.py 出错,提示: File stdin , line 1
  10. 你确实应该学习并使用的 10 个 C# 特性