最近在工作中需要(呵呵)用C#调用python文件,所使用的工具是IronPython
由于对C#语言不熟悉,所以这篇文章里就不探讨C#语言相关问题。


  • 准备工作
    下载安装IronPython,地址:http://ironpython.net/download/
    下载安装VS,推荐2015之后(我是下载的2017),地址:https://www.visualstudio.com/zh-hans/downloads/
    配置过程我就不说了,详细教程在这里

  • 遇到的问题及注意事项

    1.IronPython只支持python2,不支持python3(这点很坑,python已经说明python2将不再更新维护,希望大家都去用python3,但是IronPython竟然只支持python2-_-!!!),所以只好去下载了python2,其中也遇到了一些问题,在这
    2.安装了python2后,原来基于python3的代码就需要修改(还好改动不大,就只需要把print后的小括号去掉就可以)
    3.在调用一些python库时,一些库确实可以用之前安装教程中的方法导入进来(指定路径),但是也有一些库不行,比如我这次遇到的jieba库,jieba库上说明的是同时支持python2和python3,但是我在python中运行时,正常,但是C#一调用就会抛出ImportError: cannot import name _remove_dead_weakref
    这个错误,在网上怎么搜索也找不到切实可行的修改方案,只好换一个库,换成了thulac库(这个也出现了一些小问题,在这),结果再次抛出
    ImportError: cannot import ‘,’(具体错误信息忘了,大意就是导入过程中有个‘,’不知道什么鬼)
    真是心累,没办法,去 围城 外边下载了smallseg这个库(出不去的话去这里),苍天啊,大地啊,终于成功了,啥也不说了。。。
    4.这点主要是提醒下在做C#调用python的同僚们,一定要注意,如果修改了库,一定要先运行能出来正确结果才是成功的,而不是只要没提示错误就是修改成功了,切记!(我就是因为卡在一个奇怪的错误处,半天没反应过来,python运行正常,不提示错误,但是没有输出结果,结果在C#调用时提示了错误,都是泪啊)


最后说下现在的情况,代码没有问题了,导入也正常了,就是C#中的从Form的Box中读取到的输入信息是string[]类型的,而我的python代码的输入较为复杂,是一个list里包含一个list和一段string类型,现在在解决这个问题,感觉自己要废掉了,对C#完全不熟悉啊,哎

C#调用python文件相关推荐

  1. php python-浅谈php调用python文件

    关于PHP调用Python数据传输问题 这是以前大学时做项目出现的问题,现在把它挪上来,希望给遇到问题的未来大佬给出一些小的思路,请大佬们不要大意的帮我改正,如果出现问题或者有更好的解决方法,希望大家 ...

  2. c++Error:c++调用python文件提示由于找不到python3.8.dll,无法继续运行。。。

    [写在前面] 今天在做C++调用python文件时发程序运行报错提示: "由于找不到python3.8.dll,无法继续运行..." [原因描述] 系统中缺少python3.8.d ...

  3. java调用第三方dll文件 源码_C++调用python文件(包含第三方库)

    本文内容主要参考以下两篇文章: 武军:C++中调用python(VS2017)​zhuanlan.zhihu.com C++调用python的那些坑(详细教程步骤)_giser_xupf的博客-CSD ...

  4. MATLAB调用python文件以及调用.exe文件方法

    引言: 在编程的时候有这么一个需求,就是要用MATLAB去调用python文件以及调用python写好的功能函数. 配置环境: MATLAB 2017b: python 2.7x: 方法: 1.查看m ...

  5. Java:在Java中调用python文件执行

    目录 一.Java内置Jpython库(不推荐) 1.1 下载与使用 1.2 缺陷 二.使用Runtime.getRuntime()执行脚本⽂件 2.1 使用 2.2 缺陷 三.利用cmd调用pyth ...

  6. QT调用python文件

    QT调用python文件 基本步骤 1.将python文件要是使用的环境添加到环境变量中 2.新建一个QT项目 3.在.pro文件中加入需要的python库文件目录 右击项目名,然后单击"添 ...

  7. C++调用Python文件,TensorFlow和PyTorch构建的深度学习模型,无法使用GPU的情况分析。

    C++调用Python深度学习模型,包含TensorFlow和PyTorch等构造的模型,然后使用GPU出现问题.包含C++调用Python函数,C++加载模型到GPU,GPU内存占用过大,计算完毕内 ...

  8. python文件调用python文件_自己写的python文件如何相互调用

    自己写的python文件如何相互调用?Python中的模块库十分常用,对于常用的模块可以自己动手自定义,但是如何进行调用呢? 模块相互调用 同级目录调用时的两种方法import module prin ...

  9. java调用python文件的几种方式【超细讲解!】

    java调用python的契机来自于一个项目需要用到算法,但是算法工程师们写的python,于是就有了java后端调用python脚本的需求,中间遇到了许多问题,特此记录整理了一次. 1.java调用 ...

最新文章

  1. TWRP开启时误点了系统只读(不再提示)【解决方案】
  2. 堆内存与栈内存的区别
  3. 今日问题:操作必须使用一个可更新的查询。
  4. rop的noejs客户端
  5. ARM微处理器的体系结构
  6. [剑指offer]面试题5:从尾到头打印链表
  7. mel滤波器组频率响应曲线_了解二阶滤波器的奈奎斯特图
  8. 数学差、物理差、英语又烂的放牛娃,后来竟成了清华校长,还做出了诺奖级的研究成果...
  9. __property 关键字的使用
  10. C++ 类的静态成员详细讲解(转)
  11. 系统学习机器学习之随机场(一)--HMM
  12. pythonsubprocess执行多条shell命令_Python获取shell管道数据/输入的2种方法: subprocess子进程 ......
  13. 金蝶 插入重复键值_北京数字化的金蝶财务软件软件-北京金普蝶软件科技有限公司...
  14. 普通最小二乘法、加权最小二乘法、广义最小二乘法
  15. unity使用Sprite Editor图片切割功能减少性能损耗
  16. 【Android】图形图像处理
  17. 【UV打印机】理光喷头组合说明(16H)
  18. 点、线、三角形(C++)
  19. 敏捷开发“松结对编程”系列之十二:L型代码结构(质量篇之一)
  20. el-tree 默认展开第一级节点

热门文章

  1. python怎么换行输入而不执行_关于在IDLE中怎么换行继续敲写代码而不执行语句...
  2. 03 | 高可用保证:Nacos 如何有效构建注册中心集群
  3. 07丨行锁功过:怎么减少行锁对性能的影响
  4. 解决mysql插入中文出现错误Incorrect string value: ‘\xE7\xA8\x8B\xE5\xBA\x8F...‘ for column ‘course‘ at row 1
  5. python中common是什么意思_common中的python无效语法
  6. Linux中的cp命令和mv命令
  7. Web Socket/Stomp——整合Spring Session【Header Token模式】解决方案
  8. Eclipse——导出可执行jar包
  9. Fibonacci in the Pocket
  10. Memory and Trident