[Python.NET] Problem with importing twice (PythonNet)
"Bodurov Daniel (RBBG/ENG23) via PythonNet" <[email protected]> Tue, 30 Aug 2022 07:18:48 +0000
| Newsgroups | gmane.comp.python.dotnet |
|---|---|
| Message-ID | <PAXPR10MB5183C5FEABCC931440DD7A00B9799@PAXPR10MB5183.EURPRD10.PROD.OUTLOOK.COM> |
--===============3658874476583862016==
Content-Language: en-US
Content-Type: multipart/alternative;
boundary="_000_PAXPR10MB5183C5FEABCC931440DD7A00B9799PAXPR10MB5183EURP_"
--_000_PAXPR10MB5183C5FEABCC931440DD7A00B9799PAXPR10MB5183EURP_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Hello PythonNet Developers,
I have a problem with running scripts in sequence in my C# Unit Tests.
When I run my test alone it works perfectly, but when I run all my tests, o=
ne specific test fails with Memory Access Violation Error.
This specific test is a test with 2 script imports or 2 scripts compilation=
s.
string Script1 =3D "plain_tests.py";
string Script2 =3D "fitting_tests.py";
PythonEngine.Initialize();
var script1 =3D new Script(Script1);
script1.Execute();
var script2 =3D new Script(Script2);
script2.Execute();
Where:
public class Script
{
public string Filename { get; private set; }
private PyObject Compiled;
public PyScope Scope;
public Script(string filename)
{
Filename =3D filename;
var content =3D File.ReadAllText(filename);
var py_lock =3D PythonEngine.AcquireLock();
Compiled =3D PythonEngine.Compile(content, filename, RunFlagTyp=
e.File);
PythonEngine.ReleaseLock(py_lock);
Reset();
}
public void Execute()
{
var py_lock =3D PythonEngine.AcquireLock();
Scope.Execute(Compiled);
PythonEngine.ReleaseLock(py_lock);
}
public void Reset()
{
var py_lock =3D PythonEngine.AcquireLock();
Scope =3D Py.CreateScope();
PythonEngine.ReleaseLock(py_lock);
}
}
The place it fails is on script2.Execute();
Scope.Execute(Compiled) fails on the seconds script. But this only happens =
when running all 10 unit tests. When running only this one specific test al=
one - there is no problem.
The issue occurs both from direct python function calling from Imported scr=
ipt and from this way I presented - compiling and executing script.
Do you have any idea how to solve this issue with sequential testing? I rea=
lly need your help.. I have been trying to solve this for 3 weeks now. I am=
really really stuck. Thanks in advance!
Best regards,
Daniel Bodurov
--_000_PAXPR10MB5183C5FEABCC931440DD7A00B9799PAXPR10MB5183EURP_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"Cascadia Mono";
panose-1:2 11 6 9 2 0 0 2 0 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Arial",sans-serif;
color:windowtext;
font-weight:normal;
font-style:normal;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri",sans-serif;
mso-fareast-language:EN-US;}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"BG" link=3D"#0563C1" vlink=3D"#954F72" style=3D"word-wrap:bre=
ak-word">
<div class=3D"WordSection1">
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-=
family:"Arial",sans-serif">Hello PythonNet Developers,
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-=
family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-=
family:"Arial",sans-serif">I have a problem with running scripts =
in sequence in my C# Unit Tests.
<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-=
family:"Arial",sans-serif">When I run my test alone it works perf=
ectly, but when I run all my tests, one specific test fails with Memory Acc=
ess Violation Error.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-=
family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-=
family:"Arial",sans-serif">This specific test is a test with 2 sc=
ript imports or 2 scripts compilations.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-=
family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:blue">string</span><sp=
an style=3D"font-size:9.5pt;font-family:"Cascadia Mono";color:bla=
ck"> Script1 =3D
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:#A31515">"plain_tests.py"</span><span style=3D"font-size:9=
.5pt;font-family:"Cascadia Mono";color:black">;<o:p></o:p></span>=
</p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:blue">string</span><span style=3D"font-size:9.5pt;fo=
nt-family:"Cascadia Mono";color:black"> Script2 =3D
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:#A31515">"</span><span lang=3D"EN-US" style=3D"font-size:9.5pt;=
font-family:"Cascadia Mono";color:#A31515">f</span><span style=3D=
"font-size:9.5pt;font-family:"Cascadia Mono";color:#A31515">ittin=
g</span><span lang=3D"EN-US" style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:#A31515">_tests</span><span style=3D"font-size:9.5pt=
;font-family:"Cascadia Mono";color:#A31515">.py"</span><span=
style=3D"font-size:9.5pt;font-family:"Cascadia Mono";color:black=
">;<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black">PythonEngine.In=
itialize();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:blue">var</span><span =
style=3D"font-size:9.5pt;font-family:"Cascadia Mono";color:black"=
> script1 =3D
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">new</span><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black"> Script(Script1);<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black">script1.Execute=
();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:blue">var</span><span =
style=3D"font-size:9.5pt;font-family:"Cascadia Mono";color:black"=
> script2 =3D
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">new</span><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black"> Script(Script2);<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black">script2.Execute();<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black"><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:10.0pt;font-=
family:"Arial",sans-serif">Where:<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">public</span><span style=3D"font-size:9.5pt;font-family:"=
Cascadia Mono";color:black">
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">class</span><span style=3D"font-size:9.5pt;font-family:"C=
ascadia Mono";color:black">
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:#2B91AF">Script</span><span style=3D"font-size:9.5pt;font-family:&qu=
ot;Cascadia Mono";color:black"><o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; {<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">public</span><span style=3D"font-size:9.5pt;font-family:"=
Cascadia Mono";color:black">
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">string</span><span style=3D"font-size:9.5pt;font-family:"=
Cascadia Mono";color:black"> Filename {
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">get</span><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black">;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">private</span><span style=3D"font-size:9.5pt;font-family:"=
;Cascadia Mono";color:black">
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">set</span><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black">; }<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">private</span><span style=3D"font-size:9.5pt;font-family:"=
;Cascadia Mono";color:black"> PyObject Compiled;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">public</span><span style=3D"font-size:9.5pt;font-family:"=
Cascadia Mono";color:black"> PyScope Scope;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"><o:p> </o:=
p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">public</span><span style=3D"font-size:9.5pt;font-family:"=
Cascadia Mono";color:black">
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:#2B91AF">Script</span><span style=3D"font-size:9.5pt;font-family:&qu=
ot;Cascadia Mono";color:black">(</span><span style=3D"font-size:9.5pt;=
font-family:"Cascadia Mono";color:blue">string</span><span style=
=3D"font-size:9.5pt;font-family:"Cascadia Mono";color:black">
filename)<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; {<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; Filename =3D filename;<=
o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">var</span><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black"> content =3D File.ReadAllText(filename);<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"><o:p> </o:=
p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">var</span><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black"> py_lock =3D PythonEngine.AcquireLock();<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; Compiled =3D PythonEngi=
ne.Compile(content, filename, RunFlagType.File);<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; PythonEngine.ReleaseLoc=
k(py_lock);<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"><o:p> </o:=
p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; Reset();<o:p></o:p></sp=
an></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:35.4pt;text-autospace:none"><sp=
an style=3D"font-size:9.5pt;font-family:"Cascadia Mono";color:bla=
ck"><o:p> </o:p></span></p>
<p class=3D"MsoNormal" style=3D"margin-left:35.4pt;text-autospace:none"><sp=
an lang=3D"EN-US" style=3D"font-size:9.5pt;font-family:"Cascadia Mono&=
quot;;color:black">
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">public</span><span style=3D"font-size:9.5pt;font-family:"=
Cascadia Mono";color:black">
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">void</span><span style=3D"font-size:9.5pt;font-family:"Ca=
scadia Mono";color:black"> Execute()<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; {<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">var</span><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black"> py_lock =3D PythonEngine.AcquireLock();<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; Scope.Execute(Compiled)=
;<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; PythonEngine.ReleaseLoc=
k(py_lock);<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; }<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"><o:p> </o:=
p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">public</span><span style=3D"font-size:9.5pt;font-family:"=
Cascadia Mono";color:black">
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">void</span><span style=3D"font-size:9.5pt;font-family:"Ca=
scadia Mono";color:black"> Reset()<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; {<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp;
</span><span style=3D"font-size:9.5pt;font-family:"Cascadia Mono"=
;color:blue">var</span><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black"> py_lock =3D PythonEngine.AcquireLock();<o:p>=
</o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; Scope =3D Py.CreateScop=
e();<o:p></o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-autospace:none"><span style=3D"font-si=
ze:9.5pt;font-family:"Cascadia Mono";color:black"> &nb=
sp; PythonEngine.ReleaseLoc=
k(py_lock);<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:9.5pt;font-family:"Cas=
cadia Mono";color:black"> }<=
o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:9.5pt;font-f=
amily:"Cascadia Mono";color:black"> }<o:p=
></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:9.5pt;font-f=
amily:"Cascadia Mono";color:black"><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:9.5pt;font-f=
amily:"Cascadia Mono";color:black">The place it fails is on scrip=
t2.Execute();<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:9.5pt;font-f=
amily:"Cascadia Mono";color:black">Scope.Execute(Compiled) fails =
on the seconds script. But this only happens when running all 10 unit tests=
. When running only this one specific test alone
– there is no problem. <o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:9.5pt;font-f=
amily:"Cascadia Mono";color:black">The issue occurs both from dir=
ect python function calling from Imported script and from this way I presen=
ted – compiling and executing script.<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:9.5pt;font-f=
amily:"Cascadia Mono";color:black"><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span lang=3D"EN-US" style=3D"font-size:9.5pt;font-f=
amily:"Cascadia Mono";color:black">Do you have any idea how to so=
lve this issue with sequential testing? I really need your help.. I have be=
en trying to solve this for 3 weeks now. I am really
really stuck. Thanks in advance!<o:p></o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ar=
ial",sans-serif"><o:p> </o:p></span></p>
<p class=3D"MsoNormal"><span style=3D"font-size:10.0pt;font-family:"Ar=
ial",sans-serif;color:black;mso-fareast-language:BG">Best regards,<br>
<br>
<b>Daniel Bodurov</b></span><span style=3D"mso-fareast-language:BG"> </span=
><o:p></o:p></p>
</div>
</body>
</html>
--_000_PAXPR10MB5183C5FEABCC931440DD7A00B9799PAXPR10MB5183EURP_--
--===============3658874476583862016==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
_______________________________________________
PythonNet mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/pythonnet.python.org/
Member address: [email protected]
--===============3658874476583862016==--