-
Notifications
You must be signed in to change notification settings - Fork 774
Closed
Description
Environment
- Pythonnet version: 3.0.4
- Python version: 3.11.2
- Operating System: macOS (M1 Pro), linux (x86 and ARM)
- .NET Runtime: 9.0
Details
It seems that there is a compatibility issue with .NET 9 on macOS and Linux. Calling 'clr.AddReference(path)' fails on these platforms but works on Windows when the library is compiled with .NET 9 and the .NET runtime version is set to “9.0.0”.
Traceback (most recent call last):
File "/Users/manu/Source/pythonnet_minimal/pythonnet_minimal.py", line 10, in <module>
clr.AddReference(dll_filepath)
System.IO.FileNotFoundException: Could not load file or assembly '/Users/manu/Source/pythonnet_minimal/bin/Debug/net9.0/pythonnet_minimal.dll, Culture=neutral, PublicKeyToken=null'. The system cannot find the file specified.
File name: '/Users/manu/Source/pythonnet_minimal/bin/Debug/net9.0/pythonnet_minimal.dll, Culture=neutral, PublicKeyToken=null'
at System.Reflection.RuntimeAssembly.InternalLoad(AssemblyName assemblyName, StackCrawlMark& stackMark, AssemblyLoadContext assemblyLoadContext, RuntimeAssembly requestingAssembly, Boolean throwOnFileNotFound)
at System.Reflection.Assembly.Load(AssemblyName assemblyRef)
at Python.Runtime.AssemblyManager.LoadAssembly(AssemblyName name) in /home/benedikt/dev/pythonnet/dist/.tmpXppz4v/pythonnet-3.0.4/src/runtime/AssemblyManager.cs:line 234
at Python.Runtime.CLRModule.AddReference(String name) in /home/benedikt/dev/pythonnet/dist/.tmpXppz4v/pythonnet-3.0.4/src/runtime/Types/ClrModule.cs:line 109
at System.RuntimeMethodHandle.InvokeMethod(Object target, Void** arguments, Signature sig, Boolean isConstructor)
at System.Reflection.MethodBaseInvoker.InvokeDirectByRefWithFewArgs(Object obj, Span`1 copyOfArgs, BindingFlags invokeAttr)
I have created a simple repo that reproduces this issue: https://github.com/aesim-tech/pythonnet_minimal. You can check the action that runs on Windows and fails on Linux.
Note: The same code works correctly on macOS and Linux when targeting .NET 8.0.
Steps to Reproduce
- Clone the repository:
git clone https://github.com/aesim-tech/pythonnet_minimal.git - Build the .NET project:
dotnet build - Run the Python script:
python pythonnet_minimal.py
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels