在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 相关文章推荐
centos下更新Python版本的步骤
Feb 12 Python
Python的Django框架中的数据过滤功能
Jul 17 Python
深入解析Python中的上下文管理器
Jun 28 Python
python snownlp情感分析简易demo(分享)
Jun 04 Python
Python多进程与服务器并发原理及用法实例分析
Aug 21 Python
使用Python脚本zabbix自定义key监控oracle连接状态
Aug 28 Python
python解析命令行参数的三种方法详解
Nov 29 Python
Django后台管理系统的图文使用教学
Jan 20 Python
基于Python实现人脸自动戴口罩系统
Feb 06 Python
为什么称python为胶水语言
Jun 16 Python
python3 使用ssh隧道连接mysql的操作
Dec 05 Python
Django2.1.7 查询数据返回json格式的实现
Dec 29 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
phpBB BBcode处理的漏洞
2006/10/09 PHP
PHP面向对象分析设计的经验原则
2008/09/20 PHP
PHP开发中常用的十个代码样例
2016/02/02 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
PHP对象相关知识总结
2017/04/09 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
jQuery 解析xml文件
2009/08/09 Javascript
JavaScript 输入框内容格式验证代码
2010/02/11 Javascript
javascript Array数组对象的扩展函数代码
2010/05/22 Javascript
node在两个div之间移动,用ztree实现
2013/03/06 Javascript
js实现带搜索功能的下拉框实时搜索实时匹配
2013/11/05 Javascript
jquery 漂亮的删除确认和提交无刷新删除示例
2013/11/13 Javascript
javascript图片滑动效果实现
2021/01/28 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
Node.js如何响应Ajax的POST请求并且保存为JSON文件详解
2017/03/10 Javascript
nodejs中Express与Koa2对比分析
2018/02/06 NodeJs
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
vue异步axios获取的数据渲染到页面的方法
2018/08/09 Javascript
详解vue-cli3使用
2018/08/14 Javascript
Node.js+Express+Mysql 实现增删改查
2019/04/03 Javascript
微信小程序上传图片并等比列压缩到指定大小的实例代码
2019/10/24 Javascript
vue 使用鼠标滚动加载数据的例子
2019/10/31 Javascript
部署Python的框架下的web app的详细教程
2015/04/30 Python
深入理解Django中内置的用户认证
2017/10/06 Python
Python中super函数用法实例分析
2019/03/18 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
2019/06/13 Python
通过celery异步处理一个查询任务的完整代码
2019/11/19 Python
python 两种方法修改文件的创建时间、修改时间、访问时间
2020/09/26 Python
详解如何修改python中字典的键和值
2020/09/29 Python
使用before和:after伪类制作css3圆形按钮
2014/04/08 HTML / CSS
意大利领先的线上奢侈品销售电商:Eleonora Bonucci
2017/10/17 全球购物
荣耀商城:HIHONOR
2020/11/03 全球购物
如何反序的迭代一个序列?how do I iterate over a sequence in reverse order
2012/02/04 面试题
如何使用SQL Server语句创建表
2022/04/12 SQL Server
阿里云服务器部署RabbitMQ集群的详细教程
2022/06/01 Servers