On 06/09/2014 01:59 PM, Gelonida N wrote:
Hi,

I'd like to embed an ipython kernel in an appliction, such, that I can use

ipython console --existing kernel-<pid>.json lateron to connect to it and to look at some values


Due to various reason I don not want to start it in the main thread.

If you look at following example you will see, that I can start an ipython kernel and
connect to it as long as I start it in the main thread.

as soon as I start the kernel in another thread my ipython client prints the first few lines and a welcome text, but
no prompt is shown.

Does anybody know a way o how to start IPython outside of the main thread?


Below code trying to show a working setup with ipython kernel in the main thread and failing if ipython kernel is started from another thread

#!/usr/bin/env python
import os, time, threading
from IPython import embed_kernel

cnt  = { 'value' : 0 }
def run_ip_kernel():
    embed_kernel(local_ns={ 'cnt': cnt})

def example_thread():
    while True:
        cnt['value'] += 1
        print(cnt['value'])
        time.sleep(5)

main_thread = run_ip_kernel
other_thread = example_thread

# if I uncomment the next two lines, then I can no more
# execute my interactive IPython shell
#main_thread = example_thread
#other_thread = run_ip_kernel

print("now you can try to connect to this shell with:")
print("ipython console --existing kernel-%d.json" % os.getpid())
threading.Thread(target=other_thread).start()
main_thread()



Whatever you're trying to do(...) ... if you look at the script I provide you in attach and if you can think how usefull it would be to control exponencially what you need ... that's certainly one best approach ...

https://www.youtube.com/watch?v=p7CaiWxKYBo

Regards,
Carlos
        $id_flux["idsponsor"]=2;
//      $flux_treat=array(397,382,769,770);
        //$flux_treat=array(397,382);
        $flux_treat=array(521,6876);
        $textemailmessage="";
        include("../../conf.inc.php");



if(is_array($flux_treat)){
        foreach($flux_treat as $kfluxtotreat => $vfluxtotreat){
                //echo $kfluxtreatsubtype."<br>";
                
                if(!empty($array_language_flux_default[$vfluxtotreat])){
                        
$id_language_default=$array_language_flux_default[$vfluxtotreat];
                }
                
$info_page_records=explode("|",$array_number_records_per_page_start_flux[$vfluxtotreat]);
 
                if(is_array($id_flux["detail"][$vfluxtotreat])){
                        
foreach($id_flux["detail"][$vfluxtotreat]["Sponsor"]["url"]["information"]["xml"]
 as $kfluxtreatsubtype=>$vfluxtreatsubtype){
                                //control if execution is allowed by 
kfluxtreatsubtype and add exit
                                echo $kfluxtreatsubtype."<br>";
                                
if(check_lock_control_($kfluxtreatsubtype,"start")=="ok"){
                                
                                                
$_ids_types_xml_cache_=$_ids_types_xml_[$kfluxtreatsubtype];
                                                
$_time_of_cache_flux_subtype=$_ids_types_xml_time_cache_[$kfluxtreatsubtype];
                                                //echo "time of cache 
".$_time_of_cache_flux_subtype."<br>";
                                                
                                                if($kfluxtreatsubtype 
=="xml-movies"){
                                                        
                                                        
$number_records_or_end_position=$info_page_records[0];
                                                        $counterfilter=0;
                                                        
foreach($id_flux["detail"][$vfluxtotreat]["languages"] as $klg => $vlg){
                                                                
foreach($ids_cats_sponsor[$vfluxtotreat] as $kcat => $vcat){    
                                                                         
$cat_convereted_cache=$vcat;
                                                                         
$pagenumb=$limitepaginas=$info_page_records[1];
                                                                                
        
                                                                                
while ($pagenumb<=$limitepaginas){
                                                                                
        
$replacements=array($id_flux["idsponsorfk"],$id_flux["loginsponsor"],$id_flux["passwordsponsor"],$kcat,"{idcatsonsponsor}",$pagenumb,$vlg,$number_records_or_end_position,"{filter}",$_SERVER['REMOTE_ADDR'],$id_flux["keysponsor"],"{tracker}","{iditemdetail}","{idsubitemdetail}","{subtracker}");
   
                                                                                
        $urlstringtreat =str_replace($patterns, $replacements, 
$vfluxtreatsubtype);
                                                                                
        $page_number_cache=$pagenumb;           
                                                                                
        echo "<b>".$urlstringtreat."</b><br>";
                                                                                
        
                                                                                
        
                                                                                
        
                                                                                
        $myXML = 
open_xml_parsing($generatecache="yes",$urlstringtreat,$id_flux["idsponsor"],$vfluxtotreat,$_ids_types_xml_cache_,$klg,$_id_filter_="x",$cat_convereted_cache,$_id_product_sub_type_="x",$_time_of_cache_flux_subtype,"yes|5;3|".$page_number_cache);
                                                                                
        if(substr($myXML,0,8)=="ERRORMSG"){
                                                                                
                $textemailmessage.=$myXML;
                                                                                
        }else{
                                                                                
                $xml = new CXml();
                                                                                
                $xml->Set_XML_data($myXML);

                                                                                
                                                
                                                                                
                                                
$global1_[$video->id]['str_informations_db'] = 
prepare_strings_database(remove_weird_symbols_caracteres(treatment_string_tags($_complete_str_="",$_tag_to_treat_="",$str_array_str_informations_db),$vfluxtotreat));
                                                                                
                                                
unset($str_array_str_informations_db,$str_array_images);
                                                                                
                                                
                                                                                
                                                
$myMovie=movies_management($global1_);
                                                                                
                                                
if(substr($myMovie,0,8)=="ERRORMSG"){
                                                                                
                                                        
$textemailmessage.=$myMovie;
                                                                                
                                                        
unset($global1_[$video->id]);
                                                                                
                                                }else{
                                                                                
                                                        
unset($global1_[$video->id]);
                                                                                
                                                }
                                                                                
                                        
                                                                                
                                        
}//if(!is_array($global1_[$video->id])){                
                                                                                
                                
}//foreach($xml->obj_data->videos_site[0]->videos[0]->video as $video){
                                                                                
                        }//if(isset($xml->obj_data->videos_site[0]->videos[0])){
                                                                                
        }//else if(substr($myXML,0,8)=="ERRORMSG"){
                                                                                
        $pagenumb++;
                                                                                
        
$limitepaginas=$xml->obj_data->videos_site[0]->navigation[0]->nb_pages[0];
                                                                                
        unset($myXML);
                                                                                
        if($pagenumb >$limitepaginas){
                                                                                
                break;
                                                                                
        }                                       
                                                                                
}//while ($pagenumb<=$limitepaginas){
                                                                                
//echo $array_modules_to_include_subtype[$kfluxtreatsubtype]."<br>";    
                                                                                
//@include($array_modules_to_include_subtype[$kfluxtreatsubtype]);
                                                                        /*
                                                                        
if($vfluxtotreat==382 || $vfluxtotreat==397){                                   
                
                                                                                
$myMovie=movies_management($global1_);
                                                                                
if(substr($myMovie,0,8)=="ERRORMSG"){
                                                                                
        $textemailmessage.=$myMovie;
                                                                                
        echo $textemailmessage."<br>"; 
                                                                                
}
                                                                                
unset($global1_);
                                                                        }
                                                                        */
                                                                
}//foreach($ids_cats as $kcat => $vcat){        
                                                                /*
                                                                
if($vfluxtotreat==382 || $vfluxtotreat==397){                                   
        
                                                                        
$myMovie=movies_management($global1_);
                                                                        
if(substr($myMovie,0,8)=="ERRORMSG"){
                                                                                
$textemailmessage.=$myMovie;
                                                                                
echo $textemailmessage."<br>"; 
                                                                        }
                                                                        
unset($global1_);
                                                                }
                                                                */
                                                                
$counterfilter++;
                                                        
}//foreach($id_flux["detail"][$k]["languages"] as $klg => $vlg){                
                
                                                }       
                                
}//if(check_lock_control_($kfluxtreatsubtype)==""){
                                check_lock_control_($kfluxtreatsubtype,"end");
                        
}//foreach($id_flux["detail"][$vfluxtotreat]["Sponsor"]["url"]["information"]["xml"]
 as $kfluxtreatsubtype=>$vfluxtreatsubtype){
                }//if(is_array($id_flux["detail"])){
        }
}

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to