• 关于Unable to find vcvarsall.bat


    原文地址@http://www.cnblogs.com/wenyujun/p/5184494.html

    关于Unable to find vcvarsall.bat问题解决方案:

    系统:win1064位);

    python版本:3.5.232位)

    vs版本:visual studio 2013

    背景:学了python一周,做机器学习,因为要用python调用java包(HanLP),所以需要安装JPype,官网没找到32位的已编译好的包,就下了源码来编译,结果冒出Unable to find vcvarsall.bat错误,费了好大一会功夫,终于解决。

    解决办法:

    1、网上找了不少,有让装vs2008的,有让装MingGW的,有让改注册表的,都差不多试了一下,除了没装vs2008,都不好使

    2、跑去找到Libdistutils下的msvc9compiler.py文件,按照网上教程改了一下,教程如下:http://www.360doc.com/content/15/0414/23/12067640_463261796.shtml,发现不太对。

    刚学python,不知道怎的,我的没用到这个文件;

    3、后来查了查,发现同目录下还有个文件:_msvccompiler.py,进去看了看,功能貌似类似,就改了一下错误输出提示,重新编译安装,发现错误提示发生变化,确定是此文件起作用

    4、调试了一下,跟踪代码过程中发现_find_vcvarsall函数下,会去找注册表来读取c编译器的相关路径信息,后来不确定会发生什么事情,就硬编码,把变量改了,如下:

      best_version = 12

      best_dir = 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/'

      vcruntime = 'C:/Program Files (x86)/Microsoft Visual Studio 12.0/VC/redist/x86/Microsoft.VC120.CRT/msvcr120.dll'

      第一个变量是指vs的版本,本人是Vs2013,所以定义为12,第二个变量vs安装的路径(本来这个路径应该是从注册表中读出来,但读的不对,不想改注册表,就硬编码了。),第三个变量是对应的c运行时需要的库,不同版本vs该库名字不一样。

    5、改完后,重新编译安装试了一下,成了。

    瞎猫碰着死老鼠,只能凭之前的c#java经验去解决bug,总算装上了,万幸。

    此外发现年纪大了很多东西记不住,还是得写写,省得以后遇到又一顿乱找。

  • 相关阅读:
    Shell脚本——DHCP自动部署
    Shell脚本——DNS自动部署
    (四)跟我一起玩Linux网络服务:DHCP服务配置之中继代理
    Java-线索二叉树的实现
    Java-堆排序
    Java-二叉树-插入、删除、遍历
    Java-进制转换
    Java--消除重复数字后的最大值
    Java-动态规划-最多苹果数量的方法
    Java-Pi的几种实现
  • 原文地址:https://www.cnblogs.com/xianyadan/p/6719759.html
Copyright © 2020-2023  润新知