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-leave@python.org
https://mail.python.org/mailman3/lists/pythonnet.python.org/