JuliaPy / JuliaPy/PyCall.jl

Set environment variables without package rebuild?

オープン
#977 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る
主要言語
Julia
スター
1.5k
フォーク
186
PR マージ指標
30日以内にマージされた PR はありません

説明

I have the following in my `deps/build.jl` file:

```julia
using PyCall
PyCall.Conda.add("wfdb")
```

And inside module:
```julia
module MyPackage
const WFDB = PyNULL()
function __init__()
copy!(WFDB, pyimport("wfdb"))
end
end # module
```

But this doesn't work on Linux, because there are different paths for `PyCall.libpython` and `PyCall.Conda.PYTHONDIR`.
As explained in the PyCall documentation, I should set `ENV["PYTHON"]=""`, run `Pkg.build("PyCall")`, and re-launch Julia.

So, in GH Actions I've added a custom `run` command for MyPackage:
```yaml
- name: "Set up Julia"
uses: julia-actions/setup-julia@v1
with:
version: ${{ matrix.julia-version }}
arch: ${{ matrix.julia-arch }}
- uses: julia-actions/julia-buildpkg@v1
- run: julia --project=@. -e 'import Pkg; ENV["PYTHON"]=""; Pkg.add("PyCall"); Pkg.build("PyCall")'
- uses: julia-actions/julia-runtest@v1
```

But it breaks again in GH Actions for other packages, if they have MyPackage as a dependency.

So, should I really repeat this custom `run` command to all other packages that rely on MyPackage?

Or maybe I can somehow add scripts in my package, that will be run before build?

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

調査の方向性

deps/build.jl と PyCall のビルド手順から始め、次に julia-actions/julia-buildpkg と julia-actions/julia-runtest を使用している GitHub Actions のステップを調査します。依存パッケージのビルド前に MyPackage で PyCall を設定できるかを明らかにしてください。依存パッケージごとにカスタムコマンドを繰り返す必要のない、文書化された、またはサポートされているワークフローがあれば完了です。

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

評価

技術スタック
github-actions, julia
領域
build-system, ci-cd
issue の種類
機能追加
難易度
5/5
見積もり時間
1週間以上
活発さ
停滞
明瞭さ
説明が足りない
初心者へのやさしさ
20/100

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

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