Help us understand the problem. What is going on with this article?

poetry導入メモ(ubuntu18.04)

poetry導入メモ(ubuntu18.04)

突然ですが、僕のノーパソが壊れました。
無事復旧したのですが、OSをふっ飛ばして入れ替えでした。

で、この記事が流行っていたので、これを機にpoetryを導入しました。
https://qiita.com/sk217/items/43c994640f4843a18dbe

世間ではまだいっぱい導入記事があるわけじゃないのと、
OSふっ飛ばした状態でpythonから入れていく記事は見つけてなかったので、ね?
今回はpyenvから入れていきます。
何故かって?poetryはpipenvと違ってpythonそのものは入れてくれないっぽいからです。

poetry is 何?

pipenvっぽい何か。
pipenvのエラーやlockが遅すぎる事にイラッときてたので、poetryには興味あったんです。
lock関連が、いい感じなpipenv風のアレですね。

ubuntuにpythonを入れよう

まずは、インストールのために

  • python3
  • git
  • curl

を入れます。

sudo apt install python3 git curl

ipythonとか動くようにしておく

このままpythonを入れるとipythonが動かないです。
なので、事前にsqlite3を入れます。
もしかすると、libsqlite3-devだけで良かったかも…

sudo apt install sqlite libsqlite3-dev

実際に使うpythonを入れよう

上記で入れたpythonは世を忍ぶ仮のsystemのpythonなのであまり使わないです。
pipenvと違ってpython自体を入れてくれたりはしないです。
だから、pyenvを入れておきます。

git clone https://github.com/pyenv/pyenv.git ~/.pyenv
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

二行目以降でpyenvコマンドが使えるようになります。

では、とりあえず、pythonを入れましょう。
shellを再起動して下記でいいです。
versionは適当に読み替えてください。

pyenv install 3.8.1

何故かpipができない場合

pip再インスコ

curl -kL https://bootstrap.pypa.io/get-pip.py | python

poetryを入れよう

黙って下記

curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
poetry completions bash > /etc/bash_completion.d/poetry.bash-completion

二行目でpoetryの補完がキマるようになるらしいっす。

poetryを使う

projectを作る

mkdir hoge
cd hoge
poetry init

なんか、色々むずかしいこと聞かれます。
pythonのバージョンとかは上記でインストールしている奴を指定しましょう。
以降、勝手にpoetryが切り替えてくれます。

なんだか小難しいので、もっと自動的にやってもらいましょう。
上記とほぼ同じ(微妙に違う)のが下記です。

poetry new hoge

簡単ですね。

ここで、謎のミスで一つ詰まりました。
何故か僕のpoetryプロジェクトの中にはじめから.venvディレクトリが入ってて、
インストールが失敗しました。試行錯誤中に生じたらしい。変なゴミは無い方がいいですね。

poetryプロジェクトを使う

pipenvとだいぶ違う感じですね。
pipenvが全部管理するのと違って、pythonのインストール自体はpyenvにやってもらって、
poetryがライブラリやインストール済みのpythonの切り替えをやってくれる感じ。

pipenvのinstallに当たるのはaddです。
runとかshellはそのままです。

poetry add ipython
poetry run ipython

こんな感じ。

感想

pipenvに比べて圧倒的にスムーズにlockが遂行されて、好感を持ちました。
僕は使おうと思います。

uesseu
「君は絶対にエンジニアどころか、工学部の学生にすら勝てないのだ。何故ならば、プログラミングを習っていないから」私はそう仰せつかりました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした