- Notifications
You must be signed in to change notification settings - Fork749
Closed
Milestone
Description
Environment
- Pythonnet version: master build from 21/10/14
- Python version: tested with WinPython 3.6.6.2, 3.7.0, 3.7.1, 3.8.9
- Operating System: Windows10
- .NET Runtime: v4.7.1
Details
- Describe what you were trying to get done.
I tried to integrate a local python (WinPython) into a Unity application via pythonnet. While this worked for an easy demo project, initialization constantly failed for our production setup:
- What commands did you run to trigger this issue? If you can provide a
Minimal, Complete, and Verifiable example
this will help us understand the issue.
Creating a VS 2017/2019 project with the code in global namespace triggers the error (no need to actually use the class somewhere). Commenting out the Test123 class or putting it in a namespace solves the problem.
public class Test123 : IEnumerator, IEnumerable { object IEnumerator.Current { get { return null; } } public IEnumerator GetEnumerator() { return this; } public bool MoveNext() { return true; } public void Reset() { } } class Program { static void Main(string[] args) { Runtime.PythonDLL = @".\..\..\..\..\..\..\winpython\WPy64-3771\python-3.7.7.amd64\python37.dll"; var pythonPath = @".\..\..\..\..\..\..\winpython\WPy64-3771\python-3.7.7.amd64"; Environment.SetEnvironmentVariable("PATH", $@"{pythonPath};" + Environment.GetEnvironmentVariable("PATH")); Environment.SetEnvironmentVariable("PYTHONHOME", pythonPath); Environment.SetEnvironmentVariable("PYTHONPATH ", $@"{pythonPath}\Lib"); PythonEngine.Initialize(); } }
- If there was a crash, please include the traceback here.
nvalidOperationException: ValueFactory attempted to access the Value property of this instance.System.Lazy`1[T].CreateValue () (at <437ba245d8404784b9fbab9b439ac908>:0)System.Lazy`1[T].LazyInitValue () (at <437ba245d8404784b9fbab9b439ac908>:0)System.Lazy`1[T].get_Value () (at <437ba245d8404784b9fbab9b439ac908>:0)Python.Runtime.Runtime.get_InteropModule () (at C:/dev/projects/pynet/pythonnet/src/runtime/runtime.cs:574)Python.Runtime.PythonException.TryDecodePyErr (Python.Runtime.BorrowedReference typeRef, Python.Runtime.BorrowedReference valRef, Python.Runtime.BorrowedReference tbRef) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:205)Python.Runtime.PythonException.FetchCurrentOrNull (System.Runtime.ExceptionServices.ExceptionDispatchInfo& dispatchInfo) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:105)Python.Runtime.PythonException.ThrowLastAsClrException () (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:44)Python.Runtime.PythonException.ThrowIfIsNull (Python.Runtime.BorrowedReference ob) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:429)Python.Runtime.PyModule.Import (System.String name) (at C:/dev/projects/pynet/pythonnet/src/runtime/module.cs:75)Python.Runtime.Runtime+<>c__DisplayClass31_0.<GetModuleLazy>b__0 () (at C:/dev/projects/pynet/pythonnet/src/runtime/runtime.cs:402)System.Lazy`1[T].CreateValue () (at <437ba245d8404784b9fbab9b439ac908>:0)System.Lazy`1[T].LazyInitValue () (at <437ba245d8404784b9fbab9b439ac908>:0)System.Lazy`1[T].get_Value () (at <437ba245d8404784b9fbab9b439ac908>:0)Python.Runtime.Runtime.get_InteropModule () (at C:/dev/projects/pynet/pythonnet/src/runtime/runtime.cs:574)Python.Runtime.PythonException.TryDecodePyErr (Python.Runtime.BorrowedReference typeRef, Python.Runtime.BorrowedReference valRef, Python.Runtime.BorrowedReference tbRef) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:205)Python.Runtime.PythonException.FetchCurrentOrNull (System.Runtime.ExceptionServices.ExceptionDispatchInfo& dispatchInfo) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:105)Python.Runtime.PythonException.ThrowLastAsClrException () (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:44)Python.Runtime.PythonException.ThrowIfIsNull (Python.Runtime.BorrowedReference ob) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:429)Python.Runtime.PyModule.Import (System.String name) (at C:/dev/projects/pynet/pythonnet/src/runtime/module.cs:75)Python.Runtime.Py.Import (System.String name) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonengine.cs:776)Python.Runtime.InteropConfiguration+<>c.<MakeDefault>b__3_0 () (at C:/dev/projects/pynet/pythonnet/src/runtime/InteropConfiguration.cs:23)System.Lazy`1[T].CreateValue () (at <437ba245d8404784b9fbab9b439ac908>:0)System.Lazy`1[T].LazyInitValue () (at <437ba245d8404784b9fbab9b439ac908>:0)System.Lazy`1[T].get_Value () (at <437ba245d8404784b9fbab9b439ac908>:0)Python.Runtime.Mixins.CollectionMixinsProvider.get_Mixins () (at C:/dev/projects/pynet/pythonnet/src/runtime/Mixins/CollectionMixinsProvider.cs:15)Python.Runtime.Mixins.CollectionMixinsProvider.GetBaseTypes (System.Type type, System.Collections.Generic.IList`1[T] existingBases) (at C:/dev/projects/pynet/pythonnet/src/runtime/Mixins/CollectionMixinsProvider.cs:57)Python.Runtime.PythonBaseTypeProviderGroup.GetBaseTypes (System.Type type, System.Collections.Generic.IList`1[T] existingBases) (at C:/dev/projects/pynet/pythonnet/src/runtime/PythonBaseTypeProviderGroup.cs:18)Python.Runtime.TypeManager.GetBaseTypeTuple (System.Type clrType) (at C:/dev/projects/pynet/pythonnet/src/runtime/typemanager.cs:443)Python.Runtime.TypeManager.InitializeClass (System.Type clrType, Python.Runtime.PyType pyType) (at C:/dev/projects/pynet/pythonnet/src/runtime/typemanager.cs:229)Python.Runtime.TypeManager.GetOrCreateClass (System.Type type) (at C:/dev/projects/pynet/pythonnet/src/runtime/typemanager.cs:158)Python.Runtime.ClassManager.InitPyType (System.Type type, Python.Runtime.ClassBase impl) (at C:/dev/projects/pynet/pythonnet/src/runtime/classmanager.cs:263)Python.Runtime.ClassManager.GetClass (System.Type type) (at C:/dev/projects/pynet/pythonnet/src/runtime/classmanager.cs:195)Python.Runtime.ModuleObject.GetAttribute (System.String name, System.Boolean guess) (at C:/dev/projects/pynet/pythonnet/src/runtime/moduleobject.cs:120)Python.Runtime.ModuleObject.LoadNames () (at C:/dev/projects/pynet/pythonnet/src/runtime/moduleobject.cs:191)Python.Runtime.ImportHook.UpdateCLRModuleDict () (at C:/dev/projects/pynet/pythonnet/src/runtime/importhook.cs:218)Python.Runtime.ImportHook.GetCLRModule () (at C:/dev/projects/pynet/pythonnet/src/runtime/importhook.cs:230)Python.Runtime.PythonEngine.Initialize (System.Collections.Generic.IEnumerable`1[T] args, System.Boolean setSysArgv, System.Boolean initSigs, Python.Runtime.ShutdownMode mode) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonengine.cs:223)Python.Runtime.PythonEngine.Initialize (System.Boolean setSysArgv, System.Boolean initSigs, Python.Runtime.ShutdownMode mode) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonengine.cs:184)Python.Runtime.PythonEngine.Initialize () (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonengine.cs:179)ve.vet.Python.PythonIntegration..ctor () (at Assets/Source/ve.vet.Python/PythonIntegration.cs:36)ve.vet.Python.PythonIntegrationExample..ctor () (at Assets/Source/ve.vet.Python/examples/PythonIntegrationExample.cs:25)
Metadata
Metadata
Assignees
Labels
No labels