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

Vagrant + Ubuntu + VirtualBoxでPythonの環境構築したった

More than 1 year has passed since last update.

環境

MacOS: High Sierra(10.13.2)
Vagrant: 2.1.2
Ubuntu: 16.04
VirtualBox: 5.2.14r123301
MySQL: 5.7.22-0ubuntu0.16.04.1 (Ubuntu)
Python: 3.6.4
Django: 2.0.2
mysqlclient: 1.3.12
psycopg2: 2.7.4
PyMySQL: 0.8.0
pytz: 2018.4
uWSGI: 2.0.17

その他
anyenv
pyenv

大まかな流れ

  • Gitインストール
  • リポジトリからプロジェクトをクローン
  • MySQLインストール
    • mysql-server
    • mysql-client
  • anyenvインストール
  • anyenvのパスを通す
  • パッケージインストール
    • curl
    • llvm
    • sqlite3
    • libssl-dev
    • libbz2-dev
    • libreadline-dev
    • libsqlite3-dev
    • libncurses5-dev
    • libncursesw5-dev
    • python-tk
    • python3-tk
    • tk-dev
    • pyenv-pip-rehash
    • pyenv-virtualenv
    • ccache
    • pyenv-pip-update
  • pyenvインストール
  • pyenvのパスを通す
  • pythonインストール

仮想環境をvenvで作成する場合はここでストップ
venvでDjangoの環境を作成してみたった(Python3.3以降)


  • pipインストール
  • pythonのバージョンの切り替え
  • mysqlclient関連パッケージインストール
    • python-dev
    • libmysqlclient-dev
  • Djangoインストール
  • mysqlclientインストール
  • psycopg2インストール
  • PyMySQLインストール
  • pytzインストール
  • uWSGIインストール
  • CREATE DATABASE mydb;
  • python manage.py makemigrations
  • python manage.py migrate
  • python manage.py runserver

つまづいたところ

パスを通し忘れた

anyenv

~/.bashrcに以下を記述
(「よしなにやっとけや!」と心の中で突っ込むことを忘れずに!)

if [ -d $HOME/.anyenv ]
then
    export PATH="$HOME/.anyenv/bin:$PATH"
    eval "$(anyenv init -)"
fi

https://qiita.com/SUZUKI_Masaya/items/51366be1510f7fde7cdf

pyenv

~/.bashrcに以下を記述

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

※(2019/1/27追記)たぶんanyenvの設定より上に書かないとまずい?
もし下に書いた場合、$PYENV_ROOTのパスがanyenvを通らない。

echo $PYENV_ROOT # => /home/vagrant/.pyenv ではなく、/home/vagrant/.anyenv/envs/pyenvが正しい

必要なパッケージを入れていなかった

パッケージを入れまくった
(何を入れたのか理解していない)

sudo apt install curl llvm sqlite3 libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libncurses5-dev libncursesw5-dev python-tk python3-tk tk-dev

https://qiita.com/SUZUKI_Masaya/items/7ba3fef9eb7c9603762a

MySQLの起動の仕方がわからなかった

mysql.server startとかやった、、、
当然NGだったので以下を実行

sudo systemctl start mysql

python -vしたらコンソールを閉じられなくなった

Python初心者キラーに殺されかけた
Ctrl+Dで抜けられた

pipがない

以下を実行

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

https://qiita.com/TatchNicolas/items/ca6b8007d914bdef3662

pythonのバージョンがデフォルトだった

以下を実行

pyenv local 3.6.4

mysqlclientが入らない

以下を実行

apt-get install python-dev libmysqlclient-dev

マイグレーションファイルが作成できない

django.db.utils.OperationalError: (1045, "Access denied for user 'root'@'localhost' (using password: NO)")

データベースがなかった
settings.pyの設定にしたがってデータベースを作成する

CREATE DATABASE mydb;

モジュールが足りない(2019/01/29追記)

ModuleNotFoundError: No module named 'requests'

pip install requests

ModuleNotFoundError: No module named 'bs4'

pip install bs4

データが作成できなかった

以下のようなエラーになった
OperationalError - 1366: "Incorrect string value ... "

以下を実行する

DROP DATABASE mydb;
CREATE DATABASE mydb CHARACTER SET utf8;

migrateする

python manage.py migrate

http://motomichi-works.hatenablog.com/entry/2015/01/03/015337

アクセスするIPアドレスとポートがわからない

以下を参考にしたが、結局わからなかった
最終的にいろいろ試しまくったら
192.168.33.10:9080
で落ち着いた

http://kinokoru.jp/archives/1188

その他

2019/01/27追記

pyenv installコマンドが使えなくなっていた。

以下のコマンドで解決

cd ~/.anyenv/envs/pyenv/plugins/python-build/
sudo ./install.sh

https://qiita.com/Soh1121/items/68f231d759a76de8c471

2019/01/29追記

sudo pip install requestsするとsudo: pip: command not found

sudoはいらない

pip install requests

参考にした

https://qiita.com/SUZUKI_Masaya/items/51366be1510f7fde7cdf

https://qiita.com/SUZUKI_Masaya/items/7ba3fef9eb7c9603762a

http://ksino.hatenablog.com/entry/2016/11/17/232619

http://p15.jp/2014/04/17/000137

https://qiita.com/TatchNicolas/items/ca6b8007d914bdef3662

https://qiita.com/twipg/items/75fc9428e4c33ed429c0

http://www.python.ambitious-engineer.com/archives/818

https://qiita.com/1000ch/items/93841f76ea52551b6a97

http://umatomakun.hatenablog.com/entry/2014/04/25/223240

https://stackoverflow.com/questions/24462007/how-to-deal-with-this-error-1049-unknown-database-users-ohyunjun-work-astra

http://kinokoru.jp/archives/1188

http://gonulates.com/emre/blog/2017/04/27/solving-operationalerror-1366-incorrect-string-value-mysql-error-django/

http://motomichi-works.hatenablog.com/entry/2015/01/03/015337

taaaaak
Hey, I'm newbie here. Please be kind to me. LIKE - programming - art - fashion - gadget - books - work out
http://takkuso.hatenablog.com/
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