在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的subprocess模块总结
Nov 07 Python
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
Python实现登录人人网并抓取新鲜事的方法
May 11 Python
详解Python中的strftime()方法的使用
May 22 Python
Python cookbook(数据结构与算法)实现查找两个字典相同点的方法
Feb 18 Python
python调用百度地图WEB服务API获取地点对应坐标值
Jan 16 Python
python自定义线程池控制线程数量的示例
Feb 22 Python
把django中admin后台界面的英文修改为中文显示的方法
Jul 26 Python
python和js交互调用的方法
Jun 23 Python
浅谈Keras参数 input_shape、input_dim和input_length用法
Jun 29 Python
django和flask哪个值得研究学习
Jul 31 Python
python编程简单几行代码实现视频转换Gif示例
Oct 05 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 页面编码声明方法详解(header或meta)
2010/03/12 PHP
PHP批量采集下载美女图片的实现代码
2013/06/03 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
MC Dialog js弹出层 完美兼容多浏览器(5.6更新)
2010/05/06 Javascript
js对文章内容进行分页示例代码
2014/03/05 Javascript
jQuery焦点图切换简易插件制作过程全纪录
2014/08/27 Javascript
json实现前后台的相互传值详解
2015/01/05 Javascript
JavaScript实现定时隐藏与显示图片的方法
2015/08/06 Javascript
手机端转盘抽奖代码分享
2015/09/10 Javascript
jQuery基于json与cookie实现购物车的方法
2016/04/15 Javascript
15位和18位身份证JS校验的简单实例
2016/07/18 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
2016/07/22 Javascript
jquery配合.NET实现点击指定绑定数据并且能够一键下载
2016/10/28 Javascript
js面向对象编程总结
2017/02/16 Javascript
你可能不知道的JSON.stringify()详解
2017/08/17 Javascript
JavaScript实现兼容IE6的收起折叠与展开效果实例
2017/09/20 Javascript
解决vuejs项目里css引用背景图片不能显示的问题
2018/09/13 Javascript
基于Vue 撸一个指令实现拖拽功能
2019/10/09 Javascript
Python 比较文本相似性的方法(difflib,Levenshtein)
2018/10/15 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
用pycharm开发django项目示例代码
2019/06/13 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
Python 内置变量和函数的查看及说明介绍
2019/12/25 Python
python判断链表是否有环的实例代码
2020/01/31 Python
PyInstaller运行原理及常用操作详解
2020/06/13 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
CSS3 @font-face属性使用指南
2014/12/12 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
IBatis持久层技术
2016/07/18 面试题
个人简历自荐信
2014/06/26 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
文明礼貌主题班会
2015/08/14 职场文书
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers