Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Export of SymPy symbol from module gives ReadOnlyMemoryError

オープン
#365 コメント 5 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
35/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
julia, python
領域
backend

調査の方向性

issue に示されているモジュールと REPL へのアクセスを再現し、その後 SymPy's src/types.jl:73 から調査を始めます。そこでは SymPy.Sym の表示に失敗します。参照されている PyCall exception.jl と pyfncall.jl のフレームを読み、エラーの経路を追跡します。エクスポートされたシンボルにアクセスし、ReadOnlyMemoryError なしで表示できれば完了です。

索引モデルが issue の本文から書いたものです。

説明

When I import the following module

module MyMod
using SymPy: symbols
export b
b = symbols("b")
end

and I try to access b from the REPL, I get:

julia> using MyMod; b
Error showing value of type SymPy.Sym:
ERROR: ReadOnlyMemoryError()
Stacktrace:
 [1] macro expansion at C:\Users\michele.zaffalon\.julia\packages\PyCall\zqDXB\src\exception.jl:93 [inlined]
 [2] #110 at C:\Users\michele.zaffalon\.julia\packages\PyCall\zqDXB\src\pyfncall.jl:43 [inlined]
 [3] disable_sigint at .\c.jl:446 [inlined]
 [4] __pycall! at C:\Users\michele.zaffalon\.julia\packages\PyCall\zqDXB\src\pyfncall.jl:42 [inlined]
 [5] _pycall!(::PyCall.PyObject, ::PyCall.PyObject, ::Tuple{SymPy.Sym}, ::Int64, ::Ptr{Nothing}) at C:\Users\michele.zaffalon\.julia\packages\PyCall\zqDXB\src\pyfncall.jl:29
 [6] _pycall! at C:\Users\michele.zaffalon\.julia\packages\PyCall\zqDXB\src\pyfncall.jl:11 [inlined]
 [7] #_#117 at C:\Users\michele.zaffalon\.julia\packages\PyCall\zqDXB\src\pyfncall.jl:86 [inlined]
 [8] (::PyCall.PyObject)(::SymPy.Sym) at C:\Users\michele.zaffalon\.julia\packages\PyCall\zqDXB\src\pyfncall.jl:86
 [9] show(::IOContext{REPL.Terminals.TTYTerminal}, ::MIME{Symbol("text/plain")}, ::SymPy.Sym) at C:\Users\michele.zaffalon\.julia\packages\SymPy\7D3De\src\types.jl:73
 [10] display(::REPL.REPLDisplay, ::MIME{Symbol("text/plain")}, ::Any) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\REPL\src\REPL.jl:137
 [11] display(::REPL.REPLDisplay, ::Any) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\REPL\src\REPL.jl:141
 [12] display(::Any) at .\multimedia.jl:323
 [13] #invokelatest#1 at .\essentials.jl:712 [inlined]
 [14] invokelatest at .\essentials.jl:711 [inlined]
 [15] print_response(::IO, ::Any, ::Bool, ::Bool, ::Any) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\REPL\src\REPL.jl:161
 [16] print_response(::REPL.AbstractREPL, ::Any, ::Bool, ::Bool) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\REPL\src\REPL.jl:146
 [17] (::REPL.var"#do_respond#38"{Bool,REPL.var"#48#57"{REPL.LineEditREPL,REPL.REPLHistoryProvider},REPL.LineEditREPL,REPL.LineEdit.Prompt})(::Any, ::Any, ::Any) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\REPL\src\REPL.jl:729
 [18] #invokelatest#1 at .\essentials.jl:712 [inlined]
 [19] invokelatest at .\essentials.jl:711 [inlined]
 [20] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\REPL\src\LineEdit.jl:2354
 [21] run_frontend(::REPL.LineEditREPL, ::REPL.REPLBackendRef) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\REPL\src\REPL.jl:1055
 [22] run_repl(::REPL.AbstractREPL, ::Any) at D:\buildbot\worker\package_win64\build\usr\share\julia\stdlib\v1.4\REPL\src\REPL.jl:206
 [23] (::Base.var"#764#766"{Bool,Bool,Bool,Bool})(::Module) at .\client.jl:383
 [24] #invokelatest#1 at .\essentials.jl:712 [inlined]
 [25] invokelatest at .\essentials.jl:711 [inlined]
 [26] run_main_repl(::Bool, ::Bool, ::Bool, ::Bool, ::Bool) at .\client.jl:367
 [27] exec_options(::Base.JLOptions) at .\client.jl:305
 [28] _start() at .\client.jl:484

Ref: https://discourse.julialang.org/t/export-of-sympy-symbol-from-module-gives-readonlymemoryerror/43426

主要言語
Julia
スター
282
フォーク
59
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

JuliaPy/SymPy.jl のほかの issue

JuliaPy/SymPy.jl の issue をすべて見る

似ている issue

Julia の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。