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

Compatibility Issue with Python 3.12.6

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

メンテナーはふだん 1 日以内に返信

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

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
30/100
issue の種類
バグ
明瞭さ
説明が足りない
活発さ
停滞
技術スタック
julia, python
領域
tooling

調査の方向性

まず、Windows 11 上で、記載された Python、Julia、PySR、juliacall のバージョンを使用して、提供された PySRRegressor の例を再現し、その後 PythonCall の traceback と互換性情報を調査します。完了とは、例が model.fit を完了し、報告された JuliaError なしで最良の方程式を出力し、関連する互換性の動作が文書化されるか、適切なテストでカバーされることを意味します。

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

説明

bug

Compatibility Issue with Python 3.12.6

I encountered a JuliaError when trying to fit the PySRRegressor model using the PythonCall package. The error seems to be related to the compatibility of the PythonCall package with Python version 3.12.6.

Steps to Reproduce:
1- Install Python 3.12.6.
2- Install the pysr package using pip install pysr.
3- Run the following code:

import numpy as np
from pysr import PySRRegressor

Sample data

X = np.random.rand(100, 1) # 100 samples, 1 feature
y = 3.0 * X[:, 0] + 2.0 # Example target

Initialize PySR model

model = PySRRegressor(
niterations=100, # Number of iterations
binary_operators=["+", "-", "*", "/"], # Allowed binary operators
unary_operators=["sin", "exp", "log"], # Allowed unary operators
loss="L2", # Loss function (mean squared error)
populations=10, # Number of populations
procs=4, # Number of CPU cores to use
parsimony=0.01, # Encourages simpler equations
maxsize=20, # Maximum size of the equation
)

Fit the model

model.fit(X, y)

View the best equation

print("Best equation:", model.sympy())

View the Hall of Fame (top equations)

print(model)
.
.
Expected Behavior: The PySRRegressor model should fit the data without any errors, and the best equation should be printed.

Actual Behavior: The following error occurs:
JuliaError Traceback (most recent call last)
Cell In[34], line 22
10 model = PySRRegressor(
11 niterations=100, # Number of iterations
12 binary_operators=["+", "-", "*", "/"], # Allowed binary operators
(...)
18 maxsize=20, # Maximum size of the equation
19 )
21 # Fit the model
---> 22 model.fit(X, y)
24 # View the best equation
25 print("Best equation:", model.sympy())

File c:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\pysr\sr.py:2279, in PySRRegressor.fit(self, X, y, Xresampled, weights, variable_names, complexity_of_variables, X_units, y_units, category)
2276 self._checkpoint()
2278 # Perform the search:
-> 2279 self._run(X, y, runtime_params, weights=weights, seed=seed, category=category)
2281 # Then, after fit, we save again, so the pickle file contains
2282 # the equations:
2283 if not self.temp_equation_file:

File c:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\pysr\sr.py:1889, in PySRRegressor.run(self, X, y, runtime_params, weights, category, seed)
1886 if isinstance(complexity_of_variables, list):
1887 complexity_of_variables = jl_array(complexity_of_variables)
...
@ PythonCall.JlWrap C:\Users\Administrator.julia\packages\PythonCall\Nr75f\src\JlWrap\module.jl:13
[5] pyjl_callmethod(f::Any, self::Ptr{PythonCall.C.PyObject}, args
::Ptr{PythonCall.C.PyObject}, nargs::Int64)
@ PythonCall.JlWrap C:\Users\Administrator.julia\packages\PythonCall\Nr75f\src\JlWrap\base.jl:67
[6] _pyjl_callmethod(o::Ptr{PythonCall.C.PyObject}, args::Ptr{PythonCall.C.PyObject})
@ PythonCall.JlWrap.Cjl C:\Users\Administrator.julia\packages\PythonCall\Nr75f\src\JlWrap\C.jl:63
.
.
.
.
Environment:
-Python version: 3.12.6
-julia version: 1.11.2
-pysr version: 1.3.1
-juliacall version: 0.9.23
-Operating System: [Windows 11 64-bit]
.
.
.
julia> Base.versioninfo()
ERROR: UndefVarError: versioninfo not defined in Base
Suggestion: check for spelling errors or missing imports.
Stacktrace:
[1] getproperty(x::Module, f::Symbol)
@ Base .\Base.jl:42
[2] top-level scope
@ REPL[1]:1
.
.
.
julia> Pkg.status()
ERROR: UndefVarError: Pkg not defined in Main
Suggestion: check for spelling errors or missing imports.
Stacktrace:
[1] top-level scope
@ REPL[2]:1
.
.
.
julia> versioninfo()
Julia Version 1.11.2
Commit 5e9a32e7af (2024-12-01 20:02 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: Windows (x86_64-w64-mingw32)
CPU: 16 × AMD Ryzen 7 4800H with Radeon Graphics
WORD_SIZE: 64
LLVM: libLLVM-16.0.6 (ORCJIT, znver2)
Threads: 1 default, 0 interactive, 1 GC (on 16 virtual cores)
Environment:
JULIA_PATH = "D:\Backup\Downloads\julia-1.11.2-win64.exe"
.
.
.
Additional Information: I have verified that the JULIA_PATH environment variable is set correctly and that Julia is accessible from the command line. The issue seems to be specific to the compatibility of the PythonCall package with Python 3.12.6.

主要言語
Julia
スター
1.1k
フォーク
89
平均マージ
2日 15時間
マージ済み PR(30日)
7

環境構築

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

はじめの一歩

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

JuliaPy/PythonCall.jl のほかの issue

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

似ている issue

Julia の issue をもっと見る

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

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