LoginSignup
9
4

More than 1 year has passed since last update.

Ubuntu20.04にpyenvとPipenv導入した時のメモ

Last updated at Posted at 2021-05-07

はじめに

タイトル通り、WSL2上でUbuntu20.04でpyenvとpipenvによるPython開発環境を作ろうと色々な記事通り進めたところいくつかハマったので備忘録

目標

ローカルを汚さずにPython自体のバージョンをpyenvで、プロジェクトごとの管理をPipenvで出来る状態

環境

  • Win10(WSL2)
  • Ubuntu20.04
  • zsh(他のシェル使ってる方は適宜読み替えてください)

目次

1.pyenv導入
2.Pipenv導入

1. pyenv

まずこちらを参考にpyenvのインストール

$ sudo apt update
$ sudo apt install -y --no-install-recommends build-essential libffi-dev libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev git
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

次にpyenv関連のパスを通す

$ echo -e "# pyenv paths" >> ~/.zshrc
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ echo 'eval "$(pyenv init -)"' >> ~/.zshrc
$ source ~/.zshrc

と、ここでトラブル発生(この後は試行錯誤の過程を書いてるだけなので必要ない場合はここまで読み飛ばしてください)

WARNING: `pyenv init -` no longer sets PATH.
Run `pyenv init` to see the necessary changes to make to your configuration.

ググっても解決策出てこないので、表示に従ってとりあえずpyenv initしてみることに

# Load pyenv automatically by appending
# the following to ~/.zshrc:

eval "$(pyenv init -)"

# And the following to ~/.profile:

eval "$(pyenv init --path)"

# Make sure to restart your entire logon session
# for changes to ~/.profile to take effect.

何やら「.zshrcだけじゃなくて.profileにeval "$(pyenv init --path)"追記しといてね」的な事らしい

$ echo 'eval "$(pyenv init --path)"' >> ~/.profile
$ source ~/.profile

無事エラー表示が消えたと思いきや新しいシェルを立ち上げるとまだエラーが出る...
ここでさっきのWARNING: `pyenv init -` no longer sets PATH.を見直してみると「pyenv init -する必要ないよ」ということなのでは...?と思い、.zshrcからeval "$(pyenv init -)"を消してみるとエラーも消えてパスも通った!!

公式にも特にこういったやり方は見当たらなかった(見落としてるだけかも)のでなんか知ってる方居たらコメントお願いします

自分の環境での結論

$ sudo apt update
$ sudo apt install -y --no-install-recommends build-essential libffi-dev libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev git
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
$ echo -e "# pyenv paths" >> ~/.zshrc
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
$ source ~/.zshrc

なんかエラー出るなと思ったらeval "$(pyenv init -)"を消してみるといいかも

2. Pipenv

基本的にはpip install pipenvで良いんですが、自分の環境だとcommand not foundになっちゃいました
結論から言うと、root権限でinstallすればおkでした
ついでに、仮想環境をプロジェクト直下に作るよう設定

$ echo -e "# pipenv property" >> ~/.zshrc
$ echo 'export PIPENV_VENV_IN_PROJECT=1' >> ~/.zshrc
$ source ~/.zshrc
9
4
1

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
9
4