AttributeError("'numpy.ndarray' object has no attribute 'name'")
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Bug
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Bereich
- developer-experience
Rechercherichtung
Reproduziere das gemeldete Julia 1.11- und Python 3.12-Setup, beginnend mit writer.addDetector(reg). Vergleiche die auf pyimport basierenden Aufrufe mit der Ausführung innerhalb der py"""..."""-Kapsel und untersuche anschließend pyg4ometry/gdml/Writer.py bei addDetector, writePhysicalVolume und writeVectorVariable. Als abgeschlossen gilt die Aufgabe, wenn festgestellt ist, ob PyCall die ndarray/object-Nichtübereinstimmung verursacht, und das Kompatibilitätsverhalten dokumentiert oder behoben wurde.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
I intend to execute example at github page of pyg4ometry module https://github.com/g4edge/pyg4ometry.
import pyg4ometry as pg4
from g4edgetestdata import G4EdgeTestData
g4data = G4EdgeTestData()
# define a geometry registry
reg = pg4.geant4.Registry()
# build the world volume
world_s = pg4.geant4.solid.Orb("WorldAir", 1.5, reg, lunit="cm")
world_l = pg4.geant4.LogicalVolume(world_s, "G4_AIR", "WorldAir", reg)
reg.setWorld(world_l)
# import an STL file
reader = pg4.stl.Reader(g4data["stl/utah_teapot.stl"], registry=reg)
teapot_s = reader.getSolid()
# place the teapot in the world
teapot_l = pg4.geant4.LogicalVolume(teapot_s, "G4_Cu", "UtahTeapot", reg)
pg4.geant4.PhysicalVolume([0, 0, 0], [0, 0, 0], teapot_l, "UtahTeapot", world_l, reg)
# export to GDML file "geometry.gdml"
writer = pg4.gdml.Writer()
writer.addDetector(reg)
writer.write("./geometry.gdml")
# start an interactive VTK viewer instance
viewer = pg4.visualisation.VtkViewer()
viewer.addLogicalVolume(reg.getWorldVolume())
viewer.view()
For PyCall i create virtual environment with pyg4ometry and pybdsim installed. No ROOT usage is required. PyCall is then build with python executable from that environment.
I replace the first 3 lines with
pg4 = pyimport("pyg4ometry")
g4etd = pyimport("g4edgetestdata")
g4data = g4etd.G4EdgeTestData()
Executions breaks at line
writer.addDetector(reg)
with
ERROR: PyError ($(Expr(:escape, :(ccall(#= /home/alpha/.julia/packages/PyCall/1gn3u/src/pyfncall.jl:43 =# @pysym(:PyObject_Call), PyPtr, (PyPtr, PyPtr, PyPtr), o, pyargsptr, kw))))) <class 'AttributeError'>
AttributeError("'numpy.ndarray' object has no attribute 'name'")
File "/home/alpha/pythonenvs/paper2024c/lib/python3.12/site-packages/pyg4ometry/gdml/Writer.py", line 76, in addDetector
self.writeLogicalVolume(logical)
File "/home/alpha/pythonenvs/paper2024c/lib/python3.12/site-packages/pyg4ometry/gdml/Writer.py", line 381, in writeLogicalVolume
dve = self.writePhysicalVolume(dv)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/alpha/pythonenvs/paper2024c/lib/python3.12/site-packages/pyg4ometry/gdml/Writer.py", line 429, in writePhysicalVolume
self.writeVectorVariable(pvol, pv.rotation)
File "/home/alpha/pythonenvs/paper2024c/lib/python3.12/site-packages/pyg4ometry/gdml/Writer.py", line 190, in writeVectorVariable
if allow_ref and vv.name in self.registry.defineDict:
^^^^^^^
Stacktrace:
[1] pyerr_check
@ ~/.julia/packages/PyCall/1gn3u/src/exception.jl:75 [inlined]
[2] pyerr_check
@ ~/.julia/packages/PyCall/1gn3u/src/exception.jl:79 [inlined]
[3] _handle_error(msg::String)
@ PyCall ~/.julia/packages/PyCall/1gn3u/src/exception.jl:96
[4] macro expansion
@ ~/.julia/packages/PyCall/1gn3u/src/exception.jl:110 [inlined]
[5] #107
@ ~/.julia/packages/PyCall/1gn3u/src/pyfncall.jl:43 [inlined]
[6] disable_sigint
@ ./c.jl:167 [inlined]
[7] __pycall!
@ ~/.julia/packages/PyCall/1gn3u/src/pyfncall.jl:42 [inlined]
[8] _pycall!(ret::PyObject, o::PyObject, args::Tuple{PyObject}, nargs::Int64, kw::Ptr{Nothing})
@ PyCall ~/.julia/packages/PyCall/1gn3u/src/pyfncall.jl:29
[9] _pycall!(ret::PyObject, o::PyObject, args::Tuple{PyObject}, kwargs::@Kwargs{})
@ PyCall ~/.julia/packages/PyCall/1gn3u/src/pyfncall.jl:11
[10] (::PyObject)(::PyObject, ::Vararg{Any}; kwargs::@Kwargs{})
@ PyCall ~/.julia/packages/PyCall/1gn3u/src/pyfncall.jl:86
[11] top-level scope
@ ~/modeling/Paper2024c/Calibration/Calibration.jl:89
When Python code is executed in py""" """ capsule, it executes without errors.
Julia Version 1.11.0
Commit 501a4f25c2 (2024-10-07 11:40 UTC)
Build Info:
Note: This is an unofficial build, please report bugs to the project
responsible for this build and not to the Julia project unless you can
reproduce the issue using official builds available at https://julialang.org/downloads
Platform Info:
OS: Linux (x86_64-linux-gnu)
CPU: 128 × Intel(R) Xeon(R) Gold 6338 CPU @ 2.00GHz
WORD_SIZE: 64
LLVM: libLLVM-16.0.6 (ORCJIT, icelake-server)
Threads: 64 default, 0 interactive, 32 GC (on 128 virtual cores)
Environment:
LD_LIBRARY_PATH =
JULIA_EDITOR = code
JULIA_NUM_THREADS = 64
- Vorherrschende Sprache
- Julia
- Sterne
- 1.5k
- Forks
- 186
- Ø Merge
- 7 T. 10 Std.
- Gemergte PRs (30 T.)
- 2
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus JuliaPy/PyCall.jl
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 20/100
Alle Issues in JuliaPy/PyCall.jl
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
rfordatascience/tidytuesday#1098 ·
-
`SplitRungeKutta` time steppers never call `update_lagrangian_particle_state!`, so particle `tracked_fields` are never updatedEvtl. vergeben @ali-ramadhan hat das heute übernommen. Offenbug 🐞
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
CliMA/Oceananigans.jl#6381 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ci system:windows test
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
Single-column TKE example: boundary-layer depth description doesn't match Han & Bretherton (2019)Offen
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 82/100
NumericalEarth/Breeze.jl#1143 ·
Maintainer antworten meist innerhalb von 1 Tag
-
format-check (Runic) is red on master: formatter drift on ~200 filesEvtl. vergeben @ChrisRackauckas-Claude hat das vor 1 Tag übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
SciML/ModelingToolkit.jl#5337 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 3 Tagen