在VS2017中用C#调用python脚本的实现


Posted in Python onJuly 31, 2019

情景是这样的:在C#中调用python脚本进行post请求,python脚本中使用了requests包。

Python的开发环境我们有比较多的选择,pycharm、sublime text等等。但是作为.net平台的Python语言ironPython,可以和C#交互,让编程更活泛。

ironPython本身其实就是一个python的开发环境,我的电脑上还装有python2.7和pycharm,开始的时候使用pycharm写的,本来的想法是用VS直接调用就可以了。但是后来才明白这三者的关系。

pycharm起到的左右就是一个纯编辑器的作用。在VS里面加载了写的.py文件之后,相当于把这个.py文件内部的代码,直接用ironpython解析一遍。

所以,pycharm中所写的import requests(或者其他的,只要不是自身支持的)都会报错!出现module' object has no XXXX

现在回想一下,在pycharm中也不是直接import就ok,也是先需要安装先从菜单栏找到安装第三方库的地方安装完了之后,才能import。

所以需要在ironpython中执行等效的操作。

下面说明python中的sys模块:sys模块提供了一系列有关Python运行环境的变量和函数。

sys.path 

path是一个目录列表,供Python从中查找第三方扩展模块。在python启动时,sys.path根据内建规则、PYTHONPATH变量进行初始化。

在iron python中默认的sys.path是ironpython的安装路径下的lib,而之前用pycharm安装的库是安装在了python2.7的lib中。

所以要在文件的开头加上

import sys
sys.path.append(r'C:\Python27\Lib') #r是禁止转义字符

这样之后,ironpython就可以顺着sys新增的这个path找到库了。

在这些操作中,我感触最深的是,要想弄清楚这些问题,不是要到网上去找代码复制粘贴,而是专注于理解面对的是什么问题,每个问题的对象之间的逻辑关系是什么,从而找出来哪里逻辑错了,找出来问题出在哪里,对症下药,才能又快又好的解决问题。无头苍蝇一般的不断的转换方法,寻找尽可能现成的代码,终究是浪费时间,就算是找到了代码,最后也是一无所获,等问题稍微变变样子,就蒙蔽了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python语法快速入门指南
Oct 12 Python
python去除文件中空格、Tab及回车的方法
Apr 12 Python
在Python中使用AOP实现Redis缓存示例
Jul 11 Python
django数据库migrate失败的解决方法解析
Feb 08 Python
unittest+coverage单元测试代码覆盖操作实例详解
Apr 04 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
Python实现的合并两个有序数组算法示例
Mar 04 Python
python os模块在系统管理中的应用
Jun 22 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
python中round函数保留两位小数的方法
Dec 04 Python
python中requests库+xpath+lxml简单使用
Apr 29 Python
python多线程方法详解
Jan 18 Python
使用pip安装python库的多种方式
Jul 31 #Python
python实现几种归一化方法(Normalization Method)
Jul 31 #Python
python Django编写接口并用Jmeter测试的方法
Jul 31 #Python
python实现windows倒计时锁屏功能
Jul 30 #Python
python创建属于自己的单词词库 便于背单词
Jul 30 #Python
python中append实例用法总结
Jul 30 #Python
简单了解django orm中介模型
Jul 30 #Python
You might like
用PHP和ACCESS写聊天室(二)
2006/10/09 PHP
PHP 下载文件时自动添加bom头的方法实例
2014/01/10 PHP
ThinkPHP的模版中调用session数据的方法
2014/07/01 PHP
微信API接口大全
2015/04/15 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
提高Laravel应用性能方法详解
2019/06/24 PHP
jquery 应用代码 方便的排序功能
2010/02/06 Javascript
使用JQuery快速实现Tab的AJAX动态载入(实例讲解)
2013/12/11 Javascript
使用jQuery动态加载js脚本文件的方法
2014/04/03 Javascript
jquery text()方法取标签中的文本
2014/07/25 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
在Express中提供静态文件的实现方法
2019/10/17 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
2020/01/17 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
[01:34]2016国际邀请赛中国区预选赛IG战队教练采访
2016/06/27 DOTA
Python isinstance函数介绍
2015/04/14 Python
Python中tell()方法的使用详解
2015/05/24 Python
python使用psutil模块获取系统状态
2016/08/27 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
Java分治归并排序算法实例详解
2017/12/12 Python
Python中defaultdict与lambda表达式用法实例小结
2018/04/09 Python
Python3 Tkinkter + SQLite实现登录和注册界面
2019/11/19 Python
Python 求数组局部最大值的实例
2019/11/26 Python
Tensorflow中tf.ConfigProto()的用法详解
2020/02/06 Python
opencv 图像腐蚀和图像膨胀的实现
2020/07/07 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
2020/11/17 Python
使用Python webdriver图书馆抢座自动预约的正确方法
2021/03/04 Python
CSS3关于z-index不生效问题的解决
2020/02/19 HTML / CSS
药剂学专业应届生自荐信
2013/09/29 职场文书
优秀求职自荐信怎样写
2013/12/18 职场文书
班级活动策划书
2014/02/06 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
廉洁自律个人总结
2015/02/14 职场文书
导游词之唐山景点
2019/12/18 职场文书
Python中rapidjson参数校验实现
2021/07/25 Python