Title: C# initialize fails if a class derived from IEnumerable and IEnumerator is in global namespace · Issue #1601 · pythonnet/pythonnet · GitHub
Open Graph Title: C# initialize fails if a class derived from IEnumerable and IEnumerator is in global namespace · Issue #1601 · pythonnet/pythonnet
X Title: C# initialize fails if a class derived from IEnumerable and IEnumerator is in global namespace · Issue #1601 · pythonnet/pythonnet
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 i...
Open Graph 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 y...
X 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 y...
Opengraph URL: https://github.com/pythonnet/pythonnet/issues/1601
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"C# initialize fails if a class derived from IEnumerable and IEnumerator is in global namespace","articleBody":"### Environment\r\n\r\n- Pythonnet version: master build from 21/10/14 \r\n- Python version: tested with WinPython 3.6.6.2, 3.7.0, 3.7.1, 3.8.9\r\n- Operating System: Windows10 \r\n- .NET Runtime: v4.7.1 \r\n\r\n### Details\r\n\r\n- Describe what you were trying to get done.\r\n\r\nI 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:\r\n\r\n\r\n\r\n- What commands did you run to trigger this issue? If you can provide a\r\n [Minimal, Complete, and Verifiable example](http://stackoverflow.com/help/mcve)\r\n this will help us understand the issue.\r\n\r\nCreating 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.\r\n\r\n```\r\n public class Test123 : IEnumerator, IEnumerable\r\n {\r\n object IEnumerator.Current\r\n {\r\n get { return null; }\r\n }\r\n\r\n public IEnumerator GetEnumerator()\r\n {\r\n return this;\r\n }\r\n\r\n public bool MoveNext()\r\n {\r\n return true;\r\n }\r\n\r\n public void Reset()\r\n { }\r\n }\r\n \r\n class Program\r\n {\r\n static void Main(string[] args)\r\n {\r\n Runtime.PythonDLL = @\".\\..\\..\\..\\..\\..\\..\\winpython\\WPy64-3771\\python-3.7.7.amd64\\python37.dll\";\r\n\r\n var pythonPath = @\".\\..\\..\\..\\..\\..\\..\\winpython\\WPy64-3771\\python-3.7.7.amd64\";\r\n Environment.SetEnvironmentVariable(\"PATH\", $@\"{pythonPath};\" + Environment.GetEnvironmentVariable(\"PATH\"));\r\n Environment.SetEnvironmentVariable(\"PYTHONHOME\", pythonPath);\r\n Environment.SetEnvironmentVariable(\"PYTHONPATH \", $@\"{pythonPath}\\Lib\");\r\n\r\n PythonEngine.Initialize();\r\n }\r\n }\r\n```\r\n\r\n- If there was a crash, please include the traceback here.\r\n\r\n```\r\nnvalidOperationException: ValueFactory attempted to access the Value property of this instance.\r\nSystem.Lazy`1[T].CreateValue () (at \u003c437ba245d8404784b9fbab9b439ac908\u003e:0)\r\nSystem.Lazy`1[T].LazyInitValue () (at \u003c437ba245d8404784b9fbab9b439ac908\u003e:0)\r\nSystem.Lazy`1[T].get_Value () (at \u003c437ba245d8404784b9fbab9b439ac908\u003e:0)\r\nPython.Runtime.Runtime.get_InteropModule () (at C:/dev/projects/pynet/pythonnet/src/runtime/runtime.cs:574)\r\nPython.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)\r\nPython.Runtime.PythonException.FetchCurrentOrNull (System.Runtime.ExceptionServices.ExceptionDispatchInfo\u0026 dispatchInfo) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:105)\r\nPython.Runtime.PythonException.ThrowLastAsClrException () (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:44)\r\nPython.Runtime.PythonException.ThrowIfIsNull (Python.Runtime.BorrowedReference ob) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:429)\r\nPython.Runtime.PyModule.Import (System.String name) (at C:/dev/projects/pynet/pythonnet/src/runtime/module.cs:75)\r\nPython.Runtime.Runtime+\u003c\u003ec__DisplayClass31_0.\u003cGetModuleLazy\u003eb__0 () (at C:/dev/projects/pynet/pythonnet/src/runtime/runtime.cs:402)\r\nSystem.Lazy`1[T].CreateValue () (at \u003c437ba245d8404784b9fbab9b439ac908\u003e:0)\r\nSystem.Lazy`1[T].LazyInitValue () (at \u003c437ba245d8404784b9fbab9b439ac908\u003e:0)\r\nSystem.Lazy`1[T].get_Value () (at \u003c437ba245d8404784b9fbab9b439ac908\u003e:0)\r\nPython.Runtime.Runtime.get_InteropModule () (at C:/dev/projects/pynet/pythonnet/src/runtime/runtime.cs:574)\r\nPython.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)\r\nPython.Runtime.PythonException.FetchCurrentOrNull (System.Runtime.ExceptionServices.ExceptionDispatchInfo\u0026 dispatchInfo) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:105)\r\nPython.Runtime.PythonException.ThrowLastAsClrException () (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:44)\r\nPython.Runtime.PythonException.ThrowIfIsNull (Python.Runtime.BorrowedReference ob) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonexception.cs:429)\r\nPython.Runtime.PyModule.Import (System.String name) (at C:/dev/projects/pynet/pythonnet/src/runtime/module.cs:75)\r\nPython.Runtime.Py.Import (System.String name) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonengine.cs:776)\r\nPython.Runtime.InteropConfiguration+\u003c\u003ec.\u003cMakeDefault\u003eb__3_0 () (at C:/dev/projects/pynet/pythonnet/src/runtime/InteropConfiguration.cs:23)\r\nSystem.Lazy`1[T].CreateValue () (at \u003c437ba245d8404784b9fbab9b439ac908\u003e:0)\r\nSystem.Lazy`1[T].LazyInitValue () (at \u003c437ba245d8404784b9fbab9b439ac908\u003e:0)\r\nSystem.Lazy`1[T].get_Value () (at \u003c437ba245d8404784b9fbab9b439ac908\u003e:0)\r\nPython.Runtime.Mixins.CollectionMixinsProvider.get_Mixins () (at C:/dev/projects/pynet/pythonnet/src/runtime/Mixins/CollectionMixinsProvider.cs:15)\r\nPython.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)\r\nPython.Runtime.PythonBaseTypeProviderGroup.GetBaseTypes (System.Type type, System.Collections.Generic.IList`1[T] existingBases) (at C:/dev/projects/pynet/pythonnet/src/runtime/PythonBaseTypeProviderGroup.cs:18)\r\nPython.Runtime.TypeManager.GetBaseTypeTuple (System.Type clrType) (at C:/dev/projects/pynet/pythonnet/src/runtime/typemanager.cs:443)\r\nPython.Runtime.TypeManager.InitializeClass (System.Type clrType, Python.Runtime.PyType pyType) (at C:/dev/projects/pynet/pythonnet/src/runtime/typemanager.cs:229)\r\nPython.Runtime.TypeManager.GetOrCreateClass (System.Type type) (at C:/dev/projects/pynet/pythonnet/src/runtime/typemanager.cs:158)\r\nPython.Runtime.ClassManager.InitPyType (System.Type type, Python.Runtime.ClassBase impl) (at C:/dev/projects/pynet/pythonnet/src/runtime/classmanager.cs:263)\r\nPython.Runtime.ClassManager.GetClass (System.Type type) (at C:/dev/projects/pynet/pythonnet/src/runtime/classmanager.cs:195)\r\nPython.Runtime.ModuleObject.GetAttribute (System.String name, System.Boolean guess) (at C:/dev/projects/pynet/pythonnet/src/runtime/moduleobject.cs:120)\r\nPython.Runtime.ModuleObject.LoadNames () (at C:/dev/projects/pynet/pythonnet/src/runtime/moduleobject.cs:191)\r\nPython.Runtime.ImportHook.UpdateCLRModuleDict () (at C:/dev/projects/pynet/pythonnet/src/runtime/importhook.cs:218)\r\nPython.Runtime.ImportHook.GetCLRModule () (at C:/dev/projects/pynet/pythonnet/src/runtime/importhook.cs:230)\r\nPython.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)\r\nPython.Runtime.PythonEngine.Initialize (System.Boolean setSysArgv, System.Boolean initSigs, Python.Runtime.ShutdownMode mode) (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonengine.cs:184)\r\nPython.Runtime.PythonEngine.Initialize () (at C:/dev/projects/pynet/pythonnet/src/runtime/pythonengine.cs:179)\r\nve.vet.Python.PythonIntegration..ctor () (at Assets/Source/ve.vet.Python/PythonIntegration.cs:36)\r\nve.vet.Python.PythonIntegrationExample..ctor () (at Assets/Source/ve.vet.Python/examples/PythonIntegrationExample.cs:25)\r\n```\r\n","author":{"url":"https://github.com/mfrankeTT","@type":"Person","name":"mfrankeTT"},"datePublished":"2021-10-16T15:28:00.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/1601/pythonnet/issues/1601"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:370e9f4a-7fe2-a881-4ab2-3d9e93cd8261 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | E5C8:2B2A66:9474E4:D05BEC:6970B585 |
| html-safe-nonce | 48b5c8419d5e27bcbc26d97fa83709a0f4249b7442c38c6ef8129c054ac3e149 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJFNUM4OjJCMkE2Njo5NDc0RTQ6RDA1QkVDOjY5NzBCNTg1IiwidmlzaXRvcl9pZCI6Ijg2NTg5ODI4MjQ0ODE2OTkyMDUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ== |
| visitor-hmac | 891c04d56ecee670d6a0a31f79131880445c78ed3ae785775f530709677a1215 |
| hovercard-subject-tag | issue:1028075638 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/pythonnet/pythonnet/1601/issue_layout |
| twitter:image | https://opengraph.githubassets.com/beafc2a3da92fb9569248a309f6408075caa15cbee4c3bded67bb111664d7fb5/pythonnet/pythonnet/issues/1601 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/beafc2a3da92fb9569248a309f6408075caa15cbee4c3bded67bb111664d7fb5/pythonnet/pythonnet/issues/1601 |
| og:image:alt | 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 y... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | mfrankeTT |
| hostname | github.com |
| expected-hostname | github.com |
| None | 8e0be80373b724b033cdf8a7b1f78bf5fb6a5d7a2182a9a403aa30894606e390 |
| turbo-cache-control | no-preview |
| go-import | github.com/pythonnet/pythonnet git https://github.com/pythonnet/pythonnet.git |
| octolytics-dimension-user_id | 6050430 |
| octolytics-dimension-user_login | pythonnet |
| octolytics-dimension-repository_id | 14748123 |
| octolytics-dimension-repository_nwo | pythonnet/pythonnet |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 14748123 |
| octolytics-dimension-repository_network_root_nwo | pythonnet/pythonnet |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | b8714db0002cf78dc2d2566571807e404d6cb817 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width