在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 相关文章推荐
Flask SQLAlchemy一对一,一对多的使用方法实践
Feb 10 Python
Python 随机生成中文验证码的实例代码
Mar 20 Python
Python基于pygame实现的font游戏字体(附源码)
Nov 11 Python
简述Python中的进程、线程、协程
Mar 18 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
python多线程之事件Event的使用详解
Apr 27 Python
python递归函数绘制分形树的方法
Jun 22 Python
使用Python获取并处理IP的类型及格式方法
Nov 01 Python
mac使用python识别图形验证码功能
Jan 10 Python
使用Python将Exception异常错误堆栈信息写入日志文件
Apr 08 Python
pytorch中的numel函数用法说明
May 13 Python
python 定义函数 返回值只取其中一个的实现
May 21 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
论坛头像随机变换代码
2006/10/09 PHP
简单易用的计数器(数据库)
2006/10/09 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
mysql alter table命令修改表结构实例详解
2016/09/24 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
php base64 编码与解码实例代码
2017/03/21 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
微信接口生成带参数的二维码
2017/07/31 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
基于jquery的表头固定的若干方法
2011/01/27 Javascript
js日期时间补零的小例子
2013/03/05 Javascript
JS对象转换为Jquery对象实现代码
2013/12/29 Javascript
从数据库读取数据后将其输出成html标签的三种方法
2014/10/13 Javascript
AngularJS入门教程之服务(Service)
2016/07/27 Javascript
js中class的点击事件没有效果的解决方法
2016/10/13 Javascript
微信小程序 http请求的session管理
2017/06/07 Javascript
js构造函数创建对象是否加new问题
2018/01/22 Javascript
微信小程序分享功能之按钮button 边框隐藏和点击隐藏
2018/06/14 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
vue中实现回车键登录功能
2020/02/19 Javascript
在vue中实现嵌套页面(iframe)
2020/07/30 Javascript
Vue js with语句原理及用法解析
2020/09/03 Javascript
Python实现更改图片尺寸大小的方法(基于Pillow包)
2016/09/19 Python
django如何通过类视图使用装饰器
2019/07/24 Python
pycharm修改file type方式
2019/11/19 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
Why we need EJB
2016/10/20 面试题
教师年度考核自我鉴定
2014/01/19 职场文书
文秘班元旦晚会活动策划方案
2014/08/28 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
优秀共产党员主要事迹材料
2015/11/05 职场文书
100句人生哲理语录集锦:强者征服今天,懒汉坐等明天
2019/10/18 职场文书