質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Julia

Juliaとは、科学技術計算に特化した、高水準・高性能な動的プログラミング言語です。オープンソースとして公表されており、書き易く動きが早いことが特徴です。

Q&A

解決済

1回答

467閲覧

Juliaのpathが通らず保存もされない

keraker

総合スコア46

Julia

Juliaとは、科学技術計算に特化した、高水準・高性能な動的プログラミング言語です。オープンソースとして公表されており、書き易く動きが早いことが特徴です。

0グッド

0クリップ

投稿2023/11/02 09:09

編集2023/11/02 09:10

実現したいこと

プロンプトを起動するたびに
ENV["PYTHON"]=""
ENV["JULIA_SSL_CA_ROOTS_PATH"]=""
を入力したくない

前提

julia1.67をインストールし、add PyPlotするのに上記環境変数を求められたので入力しました。
そのときはパスが通るのですが、プロンプトを閉じるとまた必要になっています。
ユーザーもシステムも両方に
PYTHON="アナコンダのパイソンのパス"
JULIA_SSL_CA_ROOTS_PATH="cacert.pemのパス"
を入れていてJULIA_SSL_CA_ROOTS_PATHはENVにも反映されていますが、例えばadd PyPlotでエラーが出ます。
ENV["JULIA_SSL_CA_ROOTS_PATH"]="cacert.pemのパス"
でもエラーなのでためしにPYTHON=" "で登録しましたが、だめでした。
環境変数に空文字列は登録できなさそうでした。
またENVに表示されていないだけかと思いusing PyPlotも試しましたが通っていませんでした。
こちらはENV["PYTHON"]=""でもENV["PYTHON"]="アナコンダのパイソンのパス"でもできました。
また、Pkg.build("PyCall")を試しましたがやはり保存はされませんでした。

発生している問題・エラーメッセージ

ERROR: GitError(Code:ERROR, Class:SSL, Your Julia is built with a SSL/TLS engine that libgit2 doesn't know how to configure to use a file or directory of certif icate authority roots, but your environment specifies one via the SSL_CERT_FILE variable. If you believe your system's root certificates are safe to use, you ca n `export JULIA_SSL_CA_ROOTS_PATH=""` in your environment to use those instead.)

以上以外はインストールしてからしていません。
初期設定はjuliaのインストールでパスにチェックしたくらいです。
また、最新版はうまく動かなかったのでアンインストールし.juliaを削除しました。
初期設定を忘れているのでしょうか。

よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

バージョンは1.67ではなくて,1.6.7でしょうか。

正直OSのバージョンが分からないので,手探りで回答するので
的を外しているかもしれませんが,
基本的に私は追加質問を受け付けないので,
何か追加の情報を書かれても答えないのでよろしくお願いします。
(休みの日は家の家事が優先です)

原因は私にはよく分かりませんが,
過去に存在したJuliaProとか入れたことがあるのであれば,
Julia関連の環境変数がもれなく破壊されているので注意が必要と思います。
OS上のJULIA_で始まる環境変数が設定されまくりです。通常はこれらが自動で設定されることはありません。
唯一JULIA_EDITORはデフォルトのテキストエディタなので,
各自設定することがありますが,これはあまり関係ないでしょう。

さて,Julia言語が自動的に環境変数を保存することはないと思います。

クリーンな状態からなら,次のようなスクリプトで構築可能でしょうか?(julia内のcondaを使うこと前提)

julia

1# pyplot-setup.jl 2 3ENV["JULIA_SSL_CA_ROOTS_PATH"]="" 4using Pkg 5 6Pkg.update() 7 8# もし,CONDA_JL_HOMEの環境変数が変更されていれば, 9# ENV["CONDA_JL_HOME"]="" をする必要あり 10# もし,CONDA_JL_CONDA_EXEの環境変数が変更されていれば, 11# ENV["CONDA_JL_CONDA_EXE"]="" をする必要あり 12 13Pkg.add("Conda") 14import Conda 15 16# Julia標準のminicondaの設定 17Conda.update() 18# matplotlib追加 19Conda.add("matplotlib") 20# numpy等事前にインストールしたいモジュールがあればここに追加 21 22# PyCall 設定 23Pkg.add("PyCall") 24ENV["PYTHON"]="" 25Pkg.build("PyCall") 26 27Pkg.add("PyPlot")

この前に必要な手順は大体次のような感じでしょうか?

  1. パッケージモードからPyPlotPyCallCondaの順にパッケージを削除
  2. もし,IJuliaもインストール済みならCondaの前に削除
  3. .juliaフォルダの直下にあるcondaフォルダ以下を全削除
  4. セットアップスクリプトを実行(julia pyplot-setup.jlかjuliaを起動してからinclude("pyplot-setup.jl"))

以上のような感じでセットアップができると思います。

後,毎回環境変数を変更したくないというのであれば,
~/.julia/の下にconfigフォルダを作成し,その下にstartup.jlを作って
(最終的には~/.julia/config/startup.jlのファイル)

julia

1ENV["PYTHON"]="" 2ENV["JULIA_SSL_CA_ROOTS_PATH"]=""

と書くぐらいかと思います。

追記

julia

1for senv in ["PYTHON", "JULIA_SSL_CA_ROOTS_PATH"] 2 if senv in keys(ENV) 3 delete!(ENV, senv) 4 end 5end

の方がスマートでしょうか?

なお,エラーメッセージの方はlibgit2のエラーで,おそらくパッケージをダウンロード
する時にSSLの認証でエラーになっているようです。
ですので,パッケージもうまくダウンロードできていないかもしれません。

後,OSが書いていませんが,新しいバージョンのJuliaがうまく動かないとのことなので,
Cのライブラリが古いLinuxではないかと思います。

PyCallのbulid前にJuliaのCondaパッケージのPythonを使うのにENV["PYTHON"]=""
が必要なのはPyCallをビルドする直前だけなので,
一回ビルドした後は何の値になっててもおそらくは大丈夫かと思います。

ただし,パッケージモードで全体のパージョンアップをしようとupdateをすると,
不意にリビルドが走る時があるので,
この時にはENV["PYTHON"]=""してリビルドする必要があるかもしれません。

投稿2023/11/02 14:24

編集2023/11/02 15:49
ujimushi_sradjp

総合スコア2094

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

keraker

2023/11/04 09:11

ありがとうございます。 無事ENVを設定し、またパッケージも使用可能になりました。 丁寧なご回答改めてありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問