Ajuda com IronPython

44 views
Skip to first unread message

Leandro Lima

unread,
Aug 30, 2019, 6:04:05 AM8/30/19
to Garoa Hacker Clube
Olá prezados, alguém já trabalhou com IronPython poderia me ajudar?
preciso desenvolver uma aplicação em C# no qual chame um script em Python esse script deve ficar em execução e quando necessario eu preciso chamar um metodo desse script.
esse script recebe como argumento o IP de um transmissor e realiza a conexão, apos conectado o usuario digita o numero do receptor (numero inteiro), ao receber o numero do receptor o script realiza a transmissão, porem não estou conseguindo de forma alguma rodar isso devido aos imports presentes no arquivo python que são:

import argparse
import socket
import select
import sys
import xml.etree.ElementTree as ET
import errno
import os
import logging
import sys
import time
from threading import Event, Thread

chamada no C#:
private void run_cmd(object sender, EventArgs e)
        {
            string id_pager = textBox_pager.Text.ToString();
            string ipaddress = textBox3.Text.ToString();

            ScriptRuntimeSetup setup = Python.CreateRuntimeSetup(null);
            ScriptRuntime runtime = new ScriptRuntime(setup);
            ScriptEngine engine = Python.GetEngine(runtime);
            ScriptScope scope = engine.CreateScope();
            var paths = engine.GetSearchPaths();
            ScriptSource source = engine.CreateScriptSourceFromFile("run.py");
            paths.Add(@"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\python36.zip;");
            paths.Add(@"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\DLLs;");
            paths.Add(@"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\Lib;");
            paths.Add(@"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\Python36_64\\\Lib\site-packages;");
            engine.SetSearchPaths(paths);                       
            List<String> argv = new List<String>();
            //Do some stuff and fill argv
            argv.Add(ipaddress);         
            engine.GetSysModule().SetVariable("argv", argv);
            source.Execute(scope);
        }

porem sempre ocorre o erro:
IronPython.Runtime.Exceptions.ImportException: 'No module named socket'

todas as minhas pesquisas sugeriram adicionar os paths porem mesmo assim repete-se o erro, alguem tem alguma sugestão?

Cecilia Tanaka

unread,
Sep 5, 2019, 9:15:14 AM9/5/19
to hacker...@googlegroups.com
Olá, Leandro!  Tudo bem?

Espero que alguém já tenha respondido às suas dúvidas em privado, porque não conheço nada sobre IronPython, perdão!  :P

Em caso negativo, sugiro que contate a lista Python-Brasil, que é muito legal, repleta de pessoas muito queridas e prestativas.  Pythonistas "ruleiam" e prezam pela fofura e compartilhamento de conhecimento, como você já deve saber, rs!  ;)


Caso possua uma conta no Telegram, sugiro acompanhar o GruPy e arriscar perguntar por lá:


Eles são f*dásticos e mais fofinhos e doces que bolo de chocolate!!!  #love  <3

Beijos, boa sorte!!!

Ceci
----------
Loving.  Caring.  Sharing.  Being Excellent To Each Other And To Our Hackerspace.  <3
----------
"Don't let anyone rob you of your imagination, your creativity, or your curiosity.  It's your place in the world; it's your life.  Go on and do all you can with it, and make it the life you want to live."  -  Mae Jemison
Reply all
Reply to author
Forward
0 new messages