1. 程式人生 > >在VS2017中用C#呼叫python指令碼

在VS2017中用C#呼叫python指令碼

情景是這樣的:在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找到庫了。
在這些操作中,我感觸最深的是,要想弄清楚這些問題,不是要到網上去找程式碼複製貼上,而是專注於理解面對的是什麼問題,每個問題的物件之間的邏輯關係是什麼,從而找出來哪裡邏輯錯了,找出來問題出在哪裡,對症下藥,才能又快又好的解決問題。無頭蒼蠅一般的不斷的轉換方法,尋找儘可能現成的程式碼,終究是浪費時間,就算是找到了程式碼,最後也是一無所獲,等問題稍微變變樣子,就矇蔽了。

相關推薦

VS2017中用C#呼叫python指令碼

情景是這樣的:在C#中呼叫python指令碼進行post請求,python指令碼中使用了requests包。 Python的開發環境我們有比較多的選擇,pycharm、sublime text等等。但是作為.net平臺的Python語言ironPython,可以和C#互動,

c++ 呼叫Python指令碼或者動態庫——環境Ubuntu 16.04下用codeblocks

背景:因為使用的是python版本的程式,最終要整合到C++環境的架構中,也就是說架構是c++的,交付使用者為c++的介面,但是呼叫的是python的庫,因此需要學習在c++環境下呼叫python。因為對python不熟悉,可以說有點一抹黑,因此從簡到難逐步探索。首先在c++

vs2010中C++呼叫python指令碼並製作安裝包

一、 準備工作 1. 安裝visual studio 210。 2. 安裝python編譯環境,筆者版本為2.7.2。 3. 安裝py2exe,用於給編寫好的python打包。 二、編寫python指令碼程式 以下程式為筆者為學校的bbs寫的登陸指令碼LilyLogin.

win64下C++呼叫python指令碼

#include <iostream> #include <Python.h> using namespace std; int main() { // D:\Python27\include\pyconfig.h // 修改 https://blog.csdn.n

c++呼叫python指令碼遇到的那些坑

問題一:一開始我是在qt上編寫程式的,qt是32bit,但Python是64bit,在*.pro檔案中配置了: INCLUDEPATH+=C:/Python27/include/ LIBS+=C:/Python27/libs/python27_d.lib 還是報錯,究極原

VS2015下C++呼叫Python指令碼

C++呼叫Python在一些特殊的場景下有一定的價值。比如,要呼叫一個REST服務,c++本身做HTTP Client會很煩,如果使用Python指令碼去呼叫服務,返回結果給c++端就可以繞開這個問題。因為最近在一個原型開發中遇到了這個問題,所以為了快速拿出東西來,我決定使

VS2017中用c#編寫程式執行python遇到中文不能處理出現亂碼的情況

最近在做在.NET平臺呼叫python檔案。 使用的工具為IronPython,VS2017 使用的語言為C#,python(2.7) 怎麼使用請看這裡 這篇文章主要是說下遇到的處理中文字元時出

C#中呼叫python指令碼,並使用python第三方arcpy模組

前言 1、C#中呼叫python指令碼,一是通過ironpython直接執行python指令碼,二是通過呼叫Process類啟動電腦上的python.exe,執行python指令碼。 前者在使用第三方arcpy模組式,會提示錯誤:No Module Named arcpy,

C++ 多執行緒呼叫Python指令碼

由於Python直譯器有全域性解釋所GIL的原因,導致在同一時刻只能有一個執行緒擁有直譯器,所以在C++多執行緒呼叫python指令碼時,需要控制GIL,執行緒獲取GIL。 在主執行緒中初始化Python直譯器環境,程式碼如下: { Py_Initialize()

qt c++呼叫python的matplotlib指令碼

目的:qt呼叫python 的指令碼,實現繪製3d曲線的功能 1. 需安裝的軟體 (64位和32位機器上均可安裝如下的軟體)   2. 環境變數 Path變數中新增: 新增變數Pythonpath 值: D:\Python27;D:\Python27\Lib;D:\Py

[VS2013]C++中呼叫Python指令碼提示 error LNK2001: 無法解析的外部符號__imp_PyString_FromString等錯誤的解決方案

配置如下 VS2013專案: Win32 Console,Release X64  包含目錄   : C:\Python27\include 庫 目 錄     : C:\Python27\libs

【VS2013】C語言呼叫Python指令碼環境搭建、函式呼叫呼叫demo.py指令碼an

#include <stdio.h> #include <stdlib.h> #include <string.h>#include <Python.h>int main(int argc, char** argv){int arg0 = 30;int arg1

C++呼叫Python 3.7.0

開發環境:Visual Studio 2015 + Python 3.7.0 一、在C++程式碼中寫Python指令碼 在C++中含有呼叫Python指令碼的API函式,在C++程式碼中嵌入Python指令碼程式碼,是通過PyRun_SimpleString()函式實現。它允許將Pyth

[SQL Server玩轉Python] 一.安裝環境及T-SQL呼叫python指令碼

在開發專案過程中,更多的是通過Python訪問SQL Server資料庫介面,進行資料探勘的操作;而SQL Server2016版本之後,嵌入了強大的R、Python、Machine Learning等功能,尤其是Python程式碼置於儲存過程中,可以實現一些便捷資料分析功能。 本系

2018-11-25隨筆-今天談談C++嵌入Python指令碼中遇到的問題

由於現在很多底層協議用C/C++,然後機器學習或者深度學習等演算法模型使用基於Python的TensorFlow來實現。所以現在C++用來做框架,做軟體介面,然後呼叫Python的演算法指令碼來進行計算是很常見的需求。 我們的專案中也存在著這樣的需求。下面來記錄一下相應的實現方式。 背景:C++上用MFC

淺析 C++ 呼叫 Python 模組

淺析 C++ 呼叫 Python 模組 作為一種膠水語言,Python 能夠很容易地呼叫 C 、 C++ 等語言,也能夠通過其他語言呼叫 Python 的模組。 Python 提供了 C++ 庫,使得開發者能很方便地從 C++ 程式中呼叫 Python 模組。 具體的文件參考

C++ 呼叫Python(Pyc檔案)

原文地址:https://blog.csdn.net/horizons_kong/article/details/79030183 注:本文預設已經正確安裝Python3.4 1.編輯PythonLib.py檔案,內容如下(主要定義了兩個函式): 2.執行cmd視窗,定位到Pyth

關於JAVA呼叫Python指令碼並傳遞引數

JAVA 程式呼叫python指令碼目前存在兩種形式。第一種:運用JAVA本身的自帶功能;第二種:使用jython Jar包的自帶方法來呼叫python指令碼 呼叫準備: 首先你要在本地獲取LINUX環境安裝python環境,如果是JYTHON的話需要安裝JYTHON,兩

Python:Win7下Git Bash中呼叫python指令碼

Git Bash中呼叫python指令碼需要使用:winpty python hello.py。每次呼叫的時候都這麼寫,太麻煩了。使用alias python='winpty python' 將'winpty python'重新命名為'python',這樣每次呼叫的時候直接輸

Windows下QT呼叫python指令碼

.pro檔案 #------------------------------------------------- # # Project created by QtCreator 2018-10-13