1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

いつも忘れてしまうpyenv+poetry 環境の新規プロジェクト作成

Last updated at Posted at 2023-11-10

背景

pyenv+poetry環境の新規プロジェクト立ち上げ手順を毎回調べては忘れてしまうので、備忘に記載

前提

  • pyenv+poetry環境がすでに立っている
  • 新しくpython3.11系が使える仮想環境を立てたい

手順

  • pyenvの設定
    • 欲しいバージョンのPythonが使えるか確認

      $ pyenv versions
         system
       * 3.8.13 (set by /home/username/.pyenv/version)
      
    • 残念ながら3.11系のpythonが入っていなかったためインストール

      $ pyenv install 3.11
      
    • local(=このプロジェクトフォルダ)のpythonバージョンを3.11に設定

      $ pyenv local 3.11
      
    • 確認してみるとpythonのバージョンが変わっている

      $ pyenv versions
         system
         3.8.13
         3.11.1
       * 3.11.2 (set by /path/to/project_folder/.python-version)
      
  • poetryの設定
    • projectの初期化→pyproject.tomlが作成されていればOK
      $ poetry init
      
    • プロジェクトフォルダ内で仮想環境を作る(=プロジェクトのディレクトリに/.venvを作成)
      $ poetry config virtualenvs.in-project true --local
      
    • poetryが使うpythonのバージョンを指定
      $ poetry env use 3.11
      
    • パッケージの初期インストール
      $ poetry install
      
    • 仮想環境のactivate
      $ poetry shell
      

デバッグ例

  • poetry env useで以下のようなエラーが出ることがある

    $ poetry env use 3.11
      The specified Python version (3.11.6) is not supported by the project (3.11).
    
    • こういう時はpyproject.tomlの中のtool.poetry.independencies内のpythonバージョン指定が厳しすぎることがある(以下例)
      [tool.poetry.dependencies]
      python = "3.11"            
      
    • これを少し緩めると良い
      [tool.poetry.dependencies]
      python = "^3.11"
      
  • poetry env useでプロジェクトフォルダ内に仮想環境を作ってくれないことがある

    $ poetry env use 3.11
    Using virtualenv: /Users/username/Library/Caches/pypoetry/virtualenvs/project-name-py3.xx
    
    • poetry config virtualenvs.in-project true --localの設定をする前に仮想環境をactivateしてしまっている(=poetry shellしている)のが原因(poetryは仮想環境をデフォルトで~/Library/Caches/pypoetry/virtualenvs/に仮想環境を作る)
    • 一度仮想環境を削除
      $ poetry env list
      project-name-py3.xx (Activated)
      $ poetry env remove project-name-py3.xx
      Deleted virtualenv: /Users/username/Library/Caches/pypoetry/virtualenvs/project-name-py3.xx
      
    • 仮想環境を作り直し
      poetry env use 3.11
      
1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?