| この記事の要点 |
|
Pkg REPL モードとは
Julia の対話シェル(REPL)には、通常モード以外に「特殊モード」が用意されており、その 1 つがパッケージ管理モード(Pkg モード)です。REPL 上から add・rm・update といった短いコマンドでパッケージ操作が行えるため、対話的にライブラリを試すときに便利です。
内部的には using Pkg; Pkg.add("PackageName") と同じ処理が走ります。スクリプトやコード中では関数版を、REPL でその場で操作するときは Pkg モードを使う、と覚えておけば十分です。
起動方法
Julia を起動して、通常のプロンプトが表示されている状態で ](角カッコの閉じ)を 1 回押します。
julia>
上記のように Julia のプロンプトが出ている状態で ] を押すと、プロンプトが切り替わります。
(@v1.10) pkg>
カッコの中(例: @v1.10)は現在アクティブな環境(Project)の名前です。新しい Julia をインストール直後はバージョン名そのもの(既定環境)になっています。自作プロジェクトのフォルダで起動した場合や、activate で個別環境を有効にした場合はその名前が表示されます。
他の特殊モードとの関係
Pkg モード以外にも REPL には次の特殊モードがあります。どれも 1 文字キーで切り替わります。
| キー | モード | プロンプト | 用途 |
|---|---|---|---|
| (既定) | Julia モード | julia> | 通常のコード実行 |
] | Pkg モード | (env) pkg> | パッケージ管理 |
? | ヘルプモード | help?> | 関数・型のドキュメント表示 |
; | シェルモード | shell> | OS のコマンドをそのまま実行 |
Pkg モードでよく使うコマンド
Pkg モードに入った後、コマンド名と引数だけで操作できます。; は不要、関数呼び出しの括弧も不要です。
# パッケージ追加
(@v1.10) pkg> add Plots
# 複数まとめて
(@v1.10) pkg> add DataFrames CSV
# バージョン指定で追加
(@v1.10) pkg> add Plots@1.39
# 現在の環境に入っているパッケージ一覧
(@v1.10) pkg> status
# 短縮形
(@v1.10) pkg> st
# 更新
(@v1.10) pkg> update
# 削除
(@v1.10) pkg> rm Plots
# 現在のフォルダを新規プロジェクト環境としてアクティベート
(@v1.10) pkg> activate .
# デフォルト環境に戻す
(MyProject) pkg> activate
抜け方
Pkg モードから通常の Julia モードに戻るには 2 通りあります。
- Backspace をプロンプトが空の状態で押す → 通常モードに戻る(もっとも一般的)
- Ctrl-C を押す → 強制的に通常モードに戻る
逆に ; シェルモードや ? ヘルプモードに切り替えたい場合は、いったん通常モードに戻ってからキーを押し直します。
関数版との対応
スクリプト内や Jupyter ノートブックでパッケージ管理したい場合は、関数版を使います。Pkg モードのコマンドとの対応は単純です。
| Pkg モード | 関数版(事前に using Pkg) |
|---|---|
add Plots | Pkg.add("Plots") |
rm Plots | Pkg.rm("Plots") |
status | Pkg.status() |
update | Pkg.update() |
activate . | Pkg.activate(".") |
instantiate | Pkg.instantiate() |
環境(Project)との関係
Pkg モードの強みは「プロジェクト単位で依存パッケージを完全に分離できる」点にあります。Julia の環境は Project.toml(依存リスト)と Manifest.toml(完全な依存解決結果)の 2 ファイルで管理されます。これは Python の venv + requirements.txt や Node の package.json + package-lock.json に近い関係です。
# プロジェクトディレクトリを作って、その中でアクティベート
mkdir MyApp && cd MyApp
julia
julia> ]
(@v1.10) pkg> activate .
Activating new project at `~/MyApp`
(MyApp) pkg> add DataFrames CSV
Resolving package versions...
Updating `~/MyApp/Project.toml`
Updating `~/MyApp/Manifest.toml`
# 別マシンに移すときは Project.toml + Manifest.toml を渡し、
# 受け手は次のコマンドで完全再現できる
(MyApp) pkg> instantiate
新規パッケージ追加時に何が起きているか
add は単に「DL してくる」のではなく、レジストリ(General)からメタ情報を取得し、互換性のあるバージョンの組合せを SAT ソルバ的に解いて Manifest.toml に確定させます。これにより、同じ Manifest からは何度でも完全同一の環境を再構築できます。
トラブル時のチートシート
| 症状 | 対処 |
|---|---|
] を押しても切り替わらない | カーソル位置が REPL の入力先頭になっていることを確認。何か入力された後だと文字として扱われる |
ERROR: The following package names could not be resolved | パッケージ名のタイポか、レジストリ未更新。registry update 後に再実行 |
| 依存解決が無限に終わらない | 互換制約の競合。rm で問題のパッケージを外してから入れ直す。または --update を付ける |
| 環境を共有された側で動かない | instantiate を実行して Manifest を再現。それでもダメなら Julia 本体のバージョン違い |
関連
- Julia — 言語本体の解説
子ページはありません
- Julia単体のインストール
- JuliaProを用いたインストール
- フレームワーク
- Pkg REPL modeの起動
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript で base URL を取得する方法|window.location.origin
- 4 YouTube Data API v3 エラー一覧|403・400・404 の原因と対処
- 5 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 6 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 7 Spring Frameworkのアノテーション一覧
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- プロジェクトをTomcatプロジェクトとして認識させる方法 2026-10-07 22:32:50
- MySQLの1366 Incorrect string value|Laravelの文字コード・絵文字エラー 2026-10-07 21:54:03
- curlの証明書ホスト名不一致|旧エラー51・現行60の確認と対処 2026-10-07 21:54:03
- LaravelのMassAssignmentException|fillableの原因と安全な対処 2026-10-07 21:54:03
- Eclipse で Tomcat の起動ログがコンソールに出ない時の確認手順 2026-10-07 21:54:02
- MySQLにおける中央値(Median)の導き方(バージョン8未満) 2026-10-07 13:49:45
- getInputForward 2026-10-07 13:41:15
- JSONから配列に変換 2026-10-07 13:41:15
- ビューから値をモデルに格納しコントローラーで受け取る方法 2026-10-07 13:23:41
- Laravelのテーブル作成と定義変更|マイグレーション・up/down・注意点 2026-10-07 13:23:41
- NumPy 配列に要素を追加する方法 (append / concatenate) 2026-10-07 13:23:41
- MariaDB・MySQLで現在日時を取得する方法|NOW・タイムゾーン・保存型 2026-10-07 13:13:36
- 【django】テンプレートで定数を使用する方法 2026-10-07 13:10:15
- Spring BootにおけるApplication.propertiesの環境依存設定の分割方法 2026-10-07 12:09:35
- Not supported for DML operations【Springエラー】 2026-10-07 11:09:38