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

Wrong libpython configuration after changing python dir on Linux

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

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

評価

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

調査の方向性

まず Pkg.build("PyCall") で設定を再現し、生成された deps.jl を PyCall.Conda.libpython および PyCall.PYTHONHOME と併せて調べます。conda ディレクトリが変更された後に PyCall.libpython がどこで選択されるかを追跡します;/opt/conda/3 配下に解決され、ポータブルなコンパイル済みアプリを別のマシンで実行できれば完了です。

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

説明

I want to make a portable app with PyCall included, so I move conda into a common folder (this folder I would later copy to another machine when deploying compiled app binaries):

sudo cp -rf ~/.julia/conda /opt/conda

Then I rebuild PyCall and make sure all conda and python-related paths (there are much of them!) point to the right place:

julia -e 'import Pkg; 
ENV["CONDA_JL_HOME"] = "/opt/conda/3"; 
ENV["PYTHON"] = "/opt/conda/3/bin/python3.9"; 
Pkg.add("PyCall"); 
Pkg.build("PyCall");

using PyCall
@info(
           "Conda.jl and PyCall.jl configuration after build, BUT wrong libpython!",
           PyCall.Conda.ROOTENV,
           PyCall.Conda.MINICONDA_VERSION,
           PyCall.Conda.deps_file,
           PyCall.Conda.PREFIX,
           PyCall.Conda.BINDIR,
           PyCall.Conda.LIBDIR,
           PyCall.Conda.SCRIPTDIR,
           PyCall.Conda.PYTHONDIR,
           PyCall.Conda.conda,
           PyCall.Conda.CONDARC,
           PyCall.PYTHONHOME,
           PyCall.libpython
       )
'

Which gives me all paths set right but PyCall.libpython, which prevents me from running my compiled app on another machine: (also, I'm not sure about colons in PyCall.PYTHONHOME)

┌ Info: Conda.jl and PyCall.jl configuration after build, BUT wrong libpython!
│   PyCall.Conda.ROOTENV = "/opt/conda/3"
│   PyCall.Conda.MINICONDA_VERSION = "3"
│   PyCall.Conda.deps_file = "/home/root2/.julia/packages/Conda/x2UxR/src/../deps/deps.jl"
│   PyCall.Conda.PREFIX = "/opt/conda/3"
│   PyCall.Conda.BINDIR = "/opt/conda/3/bin"
│   PyCall.Conda.LIBDIR = "/opt/conda/3/lib"
│   PyCall.Conda.SCRIPTDIR = "/opt/conda/3/bin"
│   PyCall.Conda.PYTHONDIR = "/opt/conda/3/bin"
│   PyCall.Conda.conda = "/opt/conda/3/bin/conda"
│   PyCall.Conda.CONDARC = "/opt/conda/3/condarc-julia.yml"
│   PyCall.PYTHONHOME = "/opt/conda/3:/opt/conda/3"
└   PyCall.libpython = "/home/root2/.julia/conda/3/lib/libpython3.9.so.1.0"

Contents of deps.jl:

$ cat /home/root2/.julia/packages/Conda/x2UxR/src/../deps/deps.jl
const ROOTENV = "/opt/conda/3"
const MINICONDA_VERSION = "3"
const USE_MINIFORGE = true
const CONDA_EXE = "/opt/conda/3/bin/conda"
主要言語
Julia
スター
1.5k
フォーク
186
PR マージ指標
30日以内にマージされた PR はありません

環境構築

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

はじめの一歩

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

JuliaPy/PyCall.jl のほかの issue

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

似ている issue

Julia の issue をもっと見る

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

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