ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
| この記事の要点 |
|
エラー内容
julia> Genie.run()
ERROR: UndefVarError: Genie not defined
Stacktrace:
[1] top-level scope
@ REPL[1]:1
julia> using Genie
ERROR: ArgumentError: Package Genie not found in current path.
- Run `import Pkg; Pkg.add("Genie")` to install the Genie package.
UndefVarError は Julia の基本的なエラーで、「その名前の変数 / モジュール / 関数が見つからない」という意味です。Genie の場合、Web フレームワーク Genie.jl パッケージのロードに失敗しています。
原因の切り分け
| 原因 | 確認 | 対処 |
|---|---|---|
| using Genie 忘れ | REPL で実行履歴確認 | using Genie 実行 |
| Genie 未インストール | Pkg.status() | Pkg.add("Genie") |
| 別環境がアクティブ | Pkg.status() の Activate 行 | 正しい環境を activate |
| Julia バージョン不一致 | versioninfo() | juliaup で切替 |
| script.jl で using なし | ファイル先頭を確認 | 1 行目に追加 |
| 環境変数の汚染 | JULIA_DEPOT_PATH | unset または再設定 |
対処1: パッケージのインストールと読込
# Julia REPL を起動
julia
# Pkg モードに入る(] キー)
julia> ]
(@v1.10) pkg> add Genie
(@v1.10) pkg> status # インストール一覧確認
(@v1.10) pkg> # Backspace で通常モードに戻る
julia> using Genie
julia> Genie.run()
[ Info: Listening on http://127.0.0.1:8000
対処2: プロジェクト環境を activate
Julia のプロジェクト環境を使っている場合、その環境に Genie が入っていないと当然エラーになります。
# 現在のディレクトリに Project.toml / Manifest.toml がある前提
$ cd my_genie_app
$ julia --project=.
julia> using Pkg
julia> Pkg.status()
Status `~/my_genie_app/Project.toml`
[c43c736e] Genie v5.x.x ← これがあれば OK
julia> using Genie
# あるいは REPL 中で activate
julia> ]
(@v1.10) pkg> activate .
(MyGenieApp) pkg> status
(MyGenieApp) pkg> add Genie # ← まだなら追加
対処3: Project.toml / Manifest.toml の確認
Genie アプリのプロジェクトディレクトリには必ず Project.toml(依存関係宣言)と Manifest.toml(具体的なバージョン固定)が必要です。
# Project.toml
name = "MyGenieApp"
uuid = "12345678-1234-1234-1234-123456789012"
authors = ["Your Name <you@example.com>"]
version = "0.1.0"
[deps]
Genie = "c43c736e-a2d1-11e8-161f-af95117fbd1e"
HTTP = "cd3eb016-35fb-5094-929b-558a96fad6f3"
JSON3 = "0f8b85d8-7281-11e9-16c2-39a750bddbf1"
[compat]
julia = "1.9"
Genie = "5"
Manifest.toml が壊れている / バージョン不一致の場合:
julia> ]
(MyGenieApp) pkg> instantiate # Manifest.toml に従って再インストール
(MyGenieApp) pkg> resolve # 依存関係を再解決
(MyGenieApp) pkg> update # 最新化(注意: バージョン変わる)
# それでもダメなら Manifest.toml を削除して再生成
$ rm Manifest.toml
$ julia --project=. -e 'using Pkg; Pkg.instantiate()'
対処4: Julia 複数バージョンの問題
Julia は juliaup(公式ランチャー)で複数バージョンを同時に管理できます。間違ったバージョンで起動すると別環境を参照してしまいます。
# インストール済バージョン
$ juliaup list
Channel Version
1.10 1.10.0+0.x64.linux.gnu (default)
1.9 1.9.4+0.x64.linux.gnu
# デフォルト切替
$ juliaup default 1.10
# 特定バージョンで起動
$ julia +1.10 --project=.
# 環境を確認
julia> versioninfo()
Julia Version 1.10.0
Commit ...
対処5: REPL 再起動と startup.jl
Genie をインストールした直後でも、既に開いている REPL では反映されないことがあります。
# REPL を一度終了して再起動
julia> exit()
$ julia --project=.
julia> using Genie # 今度は通る
# ~/.julia/config/startup.jl で起動時に自動 using
# 例:
using Revise # ソース変更の自動反映
using Pkg
対処6: VS Code Julia 拡張使用時
VS Code で Julia 拡張を使っている場合、設定の Julia: Environment Path が現在のワークスペースを向いていないとエラーになります。
// .vscode/settings.json
{
"julia.environmentPath": "${workspaceFolder}",
"julia.executablePath": "/usr/local/bin/julia",
"julia.NumThreads": "auto"
}
コマンドパレットで 「Julia: Change Current Environment」 → ワークスペースを選択。
Genie アプリのテンプレート生成
ゼロから始める場合は Genie 同梱のジェネレータを使うと Project.toml も自動生成されます。
julia> using Genie
julia> Genie.Generator.newapp("MyApp")
# → MyApp/ ディレクトリ作成、Project.toml 生成、依存追加
$ cd MyApp
$ julia --project=. -e 'using Genie; Genie.loadapp(); up()'
# http://127.0.0.1:8000 でアクセス可能
同種の UndefVarError(他パッケージ)
原因と対処はすべて同じパターンです:
UndefVarError: DataFrames not defined→Pkg.add("DataFrames"); using DataFramesUndefVarError: Plots not defined→Pkg.add("Plots"); using PlotsUndefVarError: HTTP not defined→Pkg.add("HTTP"); using HTTPUndefVarError: x not defined(変数)→ スコープか typo
FAQ
Q: Pkg.add しても add で固まる
A: General Registry のダウンロードに時間がかかっている可能性。Pkg.Registry.update() を試すか、JULIA_PKG_SERVER=https://pkg.julialang.org を設定。
Q: いつのまにかパッケージが消えた
A: 別環境の REPL から Pkg.rm したか、Project.toml を変更した可能性。Pkg.status で現状確認、Pkg.add で復元。
Q: 開発版 (master) の Genie を使いたい
A: Pkg.add(PackageSpec(name="Genie", rev="master")) または Pkg.develop(path="./Genie") でローカルチェックアウト。
ページの作成
親となるページを選択してください。
親ページに紐づくページを子ページといいます。
例: 親=スポーツ, 子1=サッカー, 子2=野球
子ページを親ページとして更に子ページを作成することも可能です。
例: 親=サッカー, 子=サッカーのルール
親ページはいつでも変更することが可能なのでとりあえず作ってみましょう!
子ページはありません
- ERROR: UndefVarError: Genie not defined
- ERROR: AssertionError: haskey(hashes, uuid)
- ERROR: LoadError: LoadError: invalid redefinition of constant UserApp
人気ページ
- 1 Eclipseで「サーバーに追加または除去できるリソースがありません。」の原因と対処法
- 2 tomcat の起動 / 停止ログと catalina.log・catalina.out の違い
- 3 JavaScript base URL 取得方法|window.location.origin と SSR/Node.js 対応
- 4 YouTube Data API v3 エラー一覧|403/400/404 の主要原因と切り分け
- 5 Spring Frameworkのアノテーション一覧
- 6 Laravel エラー一覧|500/Blade/DB 接続/ルーティングの代表エラー
- 7 3Dグラフィックスとは|モデリング/レンダリング/主要ソフトウェア (Blender / Maya)
- 8 【Spring】@Valueアノテーションとは
- 9 CATALINA_HOME の確認方法 (Linux / Mac)
- 10 【Spring】@Autowiredアノテーションとは
最近更新/作成されたページ
- IPv6とは|128bitアドレス・コロン16進表記/::省略・リンクローカル・SLAAC・デュアルスタック NEW 2026-06-22 12:34:44
- VPNとは|暗号トンネル・サイト間/リモートアクセス・IPsec/SSL-VPN/WireGuardを解説 NEW 2026-06-22 12:19:10
- MAC アドレスフィルタリングの仕組みと限界 | ネットワーク入門 NEW 2026-06-22 12:19:10
- gRPC とは HTTP/2 + Protocol Buffers の高速 RPC | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebRTC とは ブラウザ間 P2P の音声・映像・データ通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/2 とは 多重化・HPACK・バイナリフレーム | ネットワーク入門 NEW 2026-06-22 12:17:25
- Web通信プロトコル入門 HTTP/2・HTTP/3・WebSocket・gRPC・WebRTC | ネットワーク入門 NEW 2026-06-22 12:17:25
- HTTP/3 (QUIC) とは UDP ベースの低遅延 Web 通信 | ネットワーク入門 NEW 2026-06-22 12:17:25
- WebSocket とは 全二重リアルタイム通信 ws/wss | ネットワーク入門 NEW 2026-06-22 12:17:25
- 証明書と認証局(CA)とは|X.509・信頼チェーン・DV/OV/EV・失効(CRL/OCSP)を解説 NEW 2026-06-22 12:17:24
- ファイアウォールとは|パケットフィルタ・ステートフル・DMZ・次世代FW(L4/L7)を解説 NEW 2026-06-22 12:17:24
- iptables/nftablesとは|テーブル・チェーン・ルール例・永続化をLinux視点で解説 NEW 2026-06-22 12:17:24
- HAProxy とは frontend/backend と設定例 | ネットワーク入門 NEW 2026-06-22 12:17:24
- CDN とは エッジキャッシュ・TTL・Cloudflare/CloudFront | ネットワーク入門 NEW 2026-06-22 12:17:24
- TLS/SSLの仕組み|ハンドシェイク・暗号スイート・前方秘匿性・証明書検証をわかりやすく解説 NEW 2026-06-22 12:17:24
コメントを削除してもよろしいでしょうか?