Thank but it doesn't seem to work consistently. It worked the first time I compiled it, but then wouldn't work again, similar to the behavior I was already seeing. I don't think adding the other frameworks to <TargetFrameworks> had any effect in this particular situation, b/c I am compiling from the x64 native tools command prompt for vs2019 using csc.exe so I think I'm using the default .NET framework, but I don't know for sure. If I check where csc I can see it's calling from "C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Current\Bin\Roslyn\csc.exe"
If I add net45, net46, or net461 or any combination to the project, when I load the solution, it doesn't reference dotnet core anymore, or any framework. So any symbol from System is unreferenced. Maybe I need to add the reference to other frameworks from the project inside Visual Studio. Anyway, for the meantime this workaround seems to work: ``` from clr import pv ``` so I guess I'll have to do that or do as you did and just switch the project to a .NET Framework. thanks! On Thu, Apr 9, 2020 at 4:17 PM Emmanuel Rutovic <m...@upsim.tech> wrote: > Hi Mark, > > My understanding (and I might be wrong) is Pythonnet (Official Compiled > Master branch) is *not* compatible with .Net Core and is compatible only > with the .Net framework. Is it possible that you accidentally load .Net > Framework libraries when you think they are .Net Core ? > I spent a lot of time with a similar problem and I finally decided to > compile my project also for .Net framework : > > .csproj: > > <PropertyGroup> > <TargetFrameworks>netcoreapp3.1;net472</TargetFrameworks> > </PropertyGroup> > > There are forks that are supposed to be compatible with .Net Core but I > wasn't able to make them work either. > > I hope it helps, > Emmanuel. > > > On Thu, Apr 9, 2020 at 12:46 PM Mark Mikofski <mikof...@berkeley.edu> > wrote: > >> Sorry for starting a new thread if redundant. I have been a long time >> user of PythonNet and suddenly I am having an intermittent failure that I >> can't diagnose, >> >> PythonNet == 2.4.0.dev0 from pypi in Conda >> Python == 3.7.6 from conda main channel >> msvc 2019 >> >> I am using the following repository: >> https://github.com/mikofski/pv.net >> >> When I try to import pv.SolarPosition I get the following error: >> >> ImportError: cannot import name 'SolarPosition' from 'pv' (unknown >> location) >> >> I've tried it a couple of ways: >> >> 1. add reference to assembly name, doesn't work >> >>> import clr >> >>> assy_path = "C:\\Users\\mikofski\\source\\repos\\pv.net\\bin\\pv.dll" >> >>> assy = clr.AddReference(assy_path) >> >>> import pv >> >>> pv >> <module 'pv' (namespace)> >> >>> pv.SolarPosition >> AttributeError: module 'pv' has no attribute 'SolarPosition' >> >>> from pv import SolarPosition >> ImportError: cannot import name 'SolarPosition' from 'pv' (unknown >> location) >> >> 2. add assembly path to PYTHONPATH or sys.path, neither works >> >>> import sys >> >>> assy_path = "C:\\Users\\mikm\\source\\repos\\pv.net\\bin" >> >>> sys.path.append(assy_path) >> >>> import clr >> >>> assy = clr.AddReference("pv") >> >>> import pv >> >>> pv >> <module 'pv' (namespace)> >> >>> pv.SolarPosition >> AttributeError: module 'pv' has no attribute 'SolarPosition' >> >>> from pv import SolarPosition >> ImportError: cannot import name 'SolarPosition' from 'pv' (unknown >> location) >> >> >> 3. import from clr, always works >> >>> import clr >> >>> assy_path = "C:\\Users\\mikofski\\source\\repos\\pv.net\\bin\\pv.dll" >> >>> assy = clr.AddReference(assy_path) >> >>> from clr import pv >> >>> pv >> <module 'pv' (namespace)> >> >>> pv.SolarPosition >> pv.SolarPosition >> >>> dates = ["19900101T12:30:00", "19900102T12:30:00", >> "19900103T12:30:00", "19900104T12:30:00"] >> >>> pv.SolarPosition(dates, 32.1, -121.0) >> 19900101T12:30:00 --> 1/1/1990 12:30 PM >> 19900102T12:30:00 --> 1/2/1990 12:30 PM >> 19900103T12:30:00 --> 1/3/1990 12:30 PM >> 19900104T12:30:00 --> 1/4/1990 12:30 PM >> 01/01/1990 12:30:00 --> 1.00 >> 02/01/1990 12:30:00 --> 2.00 >> 03/01/1990 12:30:00 --> 3.00 >> 04/01/1990 12:30:00 --> 4.00 >> 1.00 --> 0 >> 2.00 --> 0.01721421 >> 3.00 --> 0.03442841 >> 4.00 --> 0.05164262 >> Out[35]: <pv.SolarPosition at 0x173cdd71c88> >> >> Even though I still can't import SolarPosition from pv at least call >> pv.SolarPosition. >> >> Weirdly, somehow if I import some other assemblies, which sometimes >> works, or if I keep trying long enough, suddenly it works, and I can import >> SolarPosition from pv using method 1 or 2. I don't know why, it's not >> repeatable. >> >> I recently made changes to my visual studio configuration, I only have >> build tools for 2015, visual studio 2017, and visual studio 2019. I am >> building using the makefile with visual studio 2019. I have tried compiling >> with either 2015 or 2017, but it doesn't seem to matter. I am using the >> native x64 environment. >> >> Also, maybe this matters, I started this project in visual studio 2019 as >> a .net core 3.1 project, and I noticed that it doesn't have >> AssemblyInfo.cs or a very big csproj file, but since I'm compiling from >> the command line using csc in the Makefile (see repo) I didn't think that >> would matter. >> >> Also, I tried an older project that I started using .Net Framework-4.5 >> and it also seems to work intermittently, inconsistently. My suspicion is >> that I somehow screwed up my .NET configuration, but not sure how or what. >> >> Anyway, if anyone has ever encountered this, or has any ideas, please let >> me know. I'm going a little crazy. >> >> thanks, >> Mark >> _______________________________________________ >> PythonNet mailing list -- pythonnet@python.org >> To unsubscribe send an email to pythonnet-le...@python.org >> https://mail.python.org/mailman3/lists/pythonnet.python.org/ >> > _______________________________________________ > PythonNet mailing list -- pythonnet@python.org > To unsubscribe send an email to pythonnet-le...@python.org > https://mail.python.org/mailman3/lists/pythonnet.python.org/ > -- Being deeply loved by someone gives you strength; loving someone deeply gives you courage. Lao Tzu
_______________________________________________ PythonNet mailing list -- pythonnet@python.org To unsubscribe send an email to pythonnet-le...@python.org https://mail.python.org/mailman3/lists/pythonnet.python.org/