Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbf87239

Browse files
authored
Merge pull requestpythonnet#777 from filmor/minimal-initializeex
Minimal Py_IntializeEx change
2 parents5c9f035 +62634f9 commitbf87239

File tree

5 files changed

+51
-41
lines changed

5 files changed

+51
-41
lines changed

‎CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ This document follows the conventions laid out in [Keep a CHANGELOG][].
2727
###Changed
2828

2929
- Reattach python exception traceback information (#545)
30+
- PythonEngine.Intialize will now call`Py_InitializeEx` with a default value of 0, so signals will not be configured by default on embedding. This is different from the previous behaviour, where`Py_Initialize` was called instead, which sets initSigs to 1. ([#449][i449])
3031

3132
###Fixed
3233

@@ -702,3 +703,4 @@ This document follows the conventions laid out in [Keep a CHANGELOG][].
702703
[p531]:https://github.com/pythonnet/pythonnet/pull/531
703704
[i755]:https://github.com/pythonnet/pythonnet/pull/755
704705
[p534]:https://github.com/pythonnet/pythonnet/pull/534
706+
[i449]:https://github.com/pythonnet/pythonnet/issues/449

‎pythonnet.sln

Lines changed: 37 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Microsoft Visual Studio Solution File, Format Version 12.00
2-
# Visual Studio14
3-
VisualStudioVersion =14.0.25420.1
2+
# Visual Studio15
3+
VisualStudioVersion =15.0.28010.2046
44
MinimumVisualStudioVersion =10.0.40219.1
55
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") ="Python.Runtime","src\runtime\Python.Runtime.csproj","{097B4AC0-74E9-4C58-BCF8-C69746EC8271}"
66
EndProject
@@ -32,38 +32,38 @@ Global
3232
ReleaseWinPY3|x86=ReleaseWinPY3|x86
3333
EndGlobalSection
3434
GlobalSection(ProjectConfigurationPlatforms) =postSolution
35-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMono|x64.ActiveCfg=DebugMono|x64
36-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMono|x64.Build.0=DebugMono|x64
37-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMono|x86.ActiveCfg=DebugMono|x86
38-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMono|x86.Build.0=DebugMono|x86
39-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMonoPY3|x64.ActiveCfg=DebugMonoPY3|x64
40-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMonoPY3|x64.Build.0=DebugMonoPY3|x64
41-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMonoPY3|x86.ActiveCfg=DebugMonoPY3|x86
42-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMonoPY3|x86.Build.0=DebugMonoPY3|x86
43-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWin|x64.ActiveCfg=DebugWin|x64
44-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWin|x64.Build.0=DebugWin|x64
45-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWin|x86.ActiveCfg=DebugWin|x86
46-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWin|x86.Build.0=DebugWin|x86
47-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWinPY3|x64.ActiveCfg=DebugWinPY3|x64
48-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWinPY3|x64.Build.0=DebugWinPY3|x64
49-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWinPY3|x86.ActiveCfg=DebugWinPY3|x86
50-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWinPY3|x86.Build.0=DebugWinPY3|x86
51-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMono|x64.ActiveCfg=ReleaseMono|x64
52-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMono|x64.Build.0=ReleaseMono|x64
53-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMono|x86.ActiveCfg=ReleaseMono|x86
54-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMono|x86.Build.0=ReleaseMono|x86
55-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMonoPY3|x64.ActiveCfg=ReleaseMonoPY3|x64
56-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMonoPY3|x64.Build.0=ReleaseMonoPY3|x64
57-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMonoPY3|x86.ActiveCfg=ReleaseMonoPY3|x86
58-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMonoPY3|x86.Build.0=ReleaseMonoPY3|x86
59-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWin|x64.ActiveCfg=ReleaseWin|x64
60-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWin|x64.Build.0=ReleaseWin|x64
61-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWin|x86.ActiveCfg=ReleaseWin|x86
62-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWin|x86.Build.0=ReleaseWin|x86
63-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWinPY3|x64.ActiveCfg=ReleaseWinPY3|x64
64-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWinPY3|x64.Build.0=ReleaseWinPY3|x64
65-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWinPY3|x86.ActiveCfg=ReleaseWinPY3|x86
66-
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWinPY3|x86.Build.0=ReleaseWinPY3|x86
35+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMono|x64.ActiveCfg=DebugMono|Any CPU
36+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMono|x64.Build.0=DebugMono|Any CPU
37+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMono|x86.ActiveCfg=DebugMono|Any CPU
38+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMono|x86.Build.0=DebugMono|Any CPU
39+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMonoPY3|x64.ActiveCfg=DebugMonoPY3|Any CPU
40+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMonoPY3|x64.Build.0=DebugMonoPY3|Any CPU
41+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMonoPY3|x86.ActiveCfg=DebugMonoPY3|Any CPU
42+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugMonoPY3|x86.Build.0=DebugMonoPY3|Any CPU
43+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWin|x64.ActiveCfg=DebugWin|Any CPU
44+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWin|x64.Build.0=DebugWin|Any CPU
45+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWin|x86.ActiveCfg=DebugWin|Any CPU
46+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWin|x86.Build.0=DebugWin|Any CPU
47+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWinPY3|x64.ActiveCfg=DebugWinPY3|Any CPU
48+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWinPY3|x64.Build.0=DebugWinPY3|Any CPU
49+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWinPY3|x86.ActiveCfg=DebugWinPY3|Any CPU
50+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.DebugWinPY3|x86.Build.0=DebugWinPY3|Any CPU
51+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMono|x64.ActiveCfg=ReleaseMono|Any CPU
52+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMono|x64.Build.0=ReleaseMono|Any CPU
53+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMono|x86.ActiveCfg=ReleaseMono|Any CPU
54+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMono|x86.Build.0=ReleaseMono|Any CPU
55+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMonoPY3|x64.ActiveCfg=ReleaseMonoPY3|Any CPU
56+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMonoPY3|x64.Build.0=ReleaseMonoPY3|Any CPU
57+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMonoPY3|x86.ActiveCfg=ReleaseMonoPY3|Any CPU
58+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseMonoPY3|x86.Build.0=ReleaseMonoPY3|Any CPU
59+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWin|x64.ActiveCfg=ReleaseWin|Any CPU
60+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWin|x64.Build.0=ReleaseWin|Any CPU
61+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWin|x86.ActiveCfg=ReleaseWin|Any CPU
62+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWin|x86.Build.0=ReleaseWin|Any CPU
63+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWinPY3|x64.ActiveCfg=ReleaseWinPY3|Any CPU
64+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWinPY3|x64.Build.0=ReleaseWinPY3|Any CPU
65+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWinPY3|x86.ActiveCfg=ReleaseWinPY3|Any CPU
66+
{097B4AC0-74E9-4C58-BCF8-C69746EC8271}.ReleaseWinPY3|x86.Build.0=ReleaseWinPY3|Any CPU
6767
{6F401A34-273B-450F-9A4C-13550BE0767B}.DebugMono|x64.ActiveCfg=DebugMono|x64
6868
{6F401A34-273B-450F-9A4C-13550BE0767B}.DebugMono|x64.Build.0=DebugMono|x64
6969
{6F401A34-273B-450F-9A4C-13550BE0767B}.DebugMono|x86.ActiveCfg=DebugMono|x86
@@ -188,6 +188,9 @@ Global
188188
GlobalSection(SolutionProperties) =preSolution
189189
HideSolutionNode =FALSE
190190
EndGlobalSection
191+
GlobalSection(ExtensibilityGlobals) =postSolution
192+
SolutionGuid ={10AE1870-1175-445A-B23A-C83497EAAE4B}
193+
EndGlobalSection
191194
GlobalSection(MonoDevelopProperties) =preSolution
192195
StartupItem =src\console\Console.csproj
193196
Policies = $0

‎src/embed_tests/dynamic.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,10 +128,11 @@ public void PassPyObjectInNet()
128128
sys.testattr2=sys.testattr1;
129129

130130
// Compare in Python
131-
PyObjectres=PythonEngine.RunString(
131+
PythonEngine.RunSimpleString(
132132
"import sys\n"+
133133
"sys.testattr3 = sys.testattr1 is sys.testattr2\n"
134134
);
135+
135136
Assert.AreEqual(sys.testattr3.ToString(),"True");
136137

137138
// Compare in .NET

‎src/runtime/pythonengine.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,9 +140,9 @@ public static void Initialize()
140140
Initialize(setSysArgv:true);
141141
}
142142

143-
publicstaticvoidInitialize(boolsetSysArgv=true)
143+
publicstaticvoidInitialize(boolsetSysArgv=true,boolinitSigs=false)
144144
{
145-
Initialize(Enumerable.Empty<string>(),setSysArgv:setSysArgv);
145+
Initialize(Enumerable.Empty<string>(),setSysArgv:setSysArgv,initSigs:initSigs);
146146
}
147147

148148
/// <summary>
@@ -153,8 +153,9 @@ public static void Initialize(bool setSysArgv = true)
153153
/// more than once, though initialization will only happen on the
154154
/// first call. It is *not* necessary to hold the Python global
155155
/// interpreter lock (GIL) to call this method.
156+
/// initSigs can be set to 1 to do default python signal configuration. This will override the way signals are handled by the application.
156157
/// </remarks>
157-
publicstaticvoidInitialize(IEnumerable<string>args,boolsetSysArgv=true)
158+
publicstaticvoidInitialize(IEnumerable<string>args,boolsetSysArgv=true,boolinitSigs=false)
158159
{
159160
if(!initialized)
160161
{
@@ -164,7 +165,7 @@ public static void Initialize(IEnumerable<string> args, bool setSysArgv = true)
164165
// during an initial "import clr", and the world ends shortly thereafter.
165166
// This is probably masking some bad mojo happening somewhere in Runtime.Initialize().
166167
delegateManager=newDelegateManager();
167-
Runtime.Initialize();
168+
Runtime.Initialize(initSigs);
168169
initialized=true;
169170
Exceptions.Clear();
170171

‎src/runtime/runtime.cs

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,11 +269,11 @@ public enum MachineType
269269
/// <summary>
270270
/// Initialize the runtime...
271271
/// </summary>
272-
internalstaticvoidInitialize()
272+
internalstaticvoidInitialize(boolinitSigs=false)
273273
{
274274
if(Py_IsInitialized()==0)
275275
{
276-
Py_Initialize();
276+
Py_InitializeEx(initSigs?1:0);
277277
}
278278

279279
if(PyEval_ThreadsInitialized()==0)
@@ -727,6 +727,9 @@ internal static unsafe long Refcount(IntPtr op)
727727
[DllImport(_PythonDll,CallingConvention=CallingConvention.Cdecl)]
728728
internalstaticexternvoid Py_Initialize();
729729

730+
[DllImport(_PythonDll,CallingConvention=CallingConvention.Cdecl)]
731+
internalstaticexternvoid Py_InitializeEx(intinitsigs);
732+
730733
[DllImport(_PythonDll,CallingConvention=CallingConvention.Cdecl)]
731734
internalstaticexternint Py_IsInitialized();
732735

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp