環境構築 poetry - MiyaKawa25/new_game GitHub Wiki

pyenvを使用してpython3.10の環境を構築する

環境設定の追加

pyenvのインストール

$ curl https://pyenv.run | bash

インストール中に以下のようなWARNINGが出た場合、

WARNING: seems you still have not added 'pyenv' to the load path.

以下を実行してもう一度インストールする。

$ rm -rf ~/.pyenv
$ curl https://pyenv.run | bash

以下のコマンドで.bashrcを開く。

$ vi ~/.bashrc

iで入力モードに切り替え、以下を記述する。

export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"

Esc,:wqで書き込み保存

ターミナルを再起動するか、以下のコマンドを実行して設定を反映

$ source ~/.bashrc

必要なパッケージのインストール

$ sudo apt install -y make build-essential libssl-dev zlib1g-dev libbz2-dev \
libreadline-dev libsqlite3-dev llvm libncurses5-dev libncursesw5-dev \
xz-utils tk-dev libffi-dev liblzma-dev python3-openssl

Python 3.10.14のインストール

pyenvを使ってPython 3.10.14をインストールする

$ pyenv install 3.10.14

グローバルなデフォルトバージョンを設定(Python 3.10に切り替え)

$ pyenv global 3.10.14

インストールが成功したか確認

$ python --version

poetryのinstall

pathの追加

以下のコマンドで.bashrcを開く

vi ~/.bashrc

以下を追記

export PATH="$HOME/.local/bin:$PATH"

ターミナルを再起動するか、以下のコマンドを実行して設定を反映

$ source ~/.bashrc

poetryをインストールする。

$ curl -sSL https://install.python-poetry.org | python3 -

poetryで環境を構築する

以下のコマンドで、設定されている環境にそろえる

$ poetry install

トラブルシ接続できない

pythonのバージョンが違うエラー

もし、$ make run を実行して以下のような表示がでたら、

$ make run
poetry run python src
The currently activated Python version 3.8.10 is not supported by the project (^3.10).
Trying to find and use a compatible version.
Using python3 (3.10.14)

解決策

以下のコマンドを実行する。

poetry env use 3.10

SDL (マルチメディア再生関連のデバイスドライバ?)に接続できない、ウィンドウを表示できない

エラー

poetry run python3 src
thread '<unnamed>' panicked at pyxel-platform/src/window.rs:22:9:
Failed to create window
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Traceback (most recent call last):
  File "/home/taki/.pyenv/versions/3.10.14/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/taki/.pyenv/versions/3.10.14/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/taki/new_game/src/__main__.py", line 4, in <module>
    Game()
  File "/home/taki/new_game/src/game.py", line 7, in __init__
    pyxel.init(240, 180)  # (W, H)
pyo3_runtime.PanicException: Failed to create window
make: *** [Makefile:7: run] Error 1

もしくは

poetry run python3 src
The currently activated Python version 3.8.10 is not supported by the project (^3.10).
Trying to find and use a compatible version. 
Using python3 (3.10.13)
thread 'python3' panicked at /__w/pyxel/pyxel/rust/pyxel-platform/src/platform.rs:29:5:
Failed to initialize SDL2
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Traceback (most recent call last):
  File "/home/taki/.pyenv/versions/3.10.13/lib/python3.10/runpy.py", line 196, in _run_module_as_main
    return _run_code(code, main_globals, None,
  File "/home/taki/.pyenv/versions/3.10.13/lib/python3.10/runpy.py", line 86, in _run_code
    exec(code, run_globals)
  File "/home/taki/new_game/src/__main__.py", line 19, in <module>
    Main()
  File "/home/taki/new_game/src/__main__.py", line 11, in __init__
    self.run()
  File "/home/taki/new_game/src/__main__.py", line 14, in run
    Title()
  File "/home/taki/new_game/src/game_title.py", line 9, in __init__
    super().__init__()
  File "/home/taki/new_game/src/game.py", line 16, in __init__
    pyxel.init(Op.WINDOW_W, Op.WINDOW_H)  # (W, H)
pyo3_runtime.PanicException: Failed to initialize SDL2
make: *** [Makefile:7: run] Error 1

解決法

sudo apt-get update
sudo apt-get install libsdl2-dev
export DISPLAY=:0
⚠️ **GitHub.com Fallback** ⚠️