🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2827閲覧

vagrant upするとcommand not foundエラーが出てしまう。

Homaresan

総合スコア15

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Vagrant

Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2019/09/27 17:10

編集2019/09/27 17:14

前提・実現したいこと

今現在、Virtual Box、Vagrantをインストールし、Mac上にVagrantでUbuntuゲストOSを作成し、その中でpythonの環境を構築しようといています。

Vagrant boxを作成しvagrantfileを編集しvagrant upすると下記のエラーが出てしまうことを解決したいです。

※途中エラーが出なかった箇所があったので、エラー文が出た箇所だけ分けて下記に記述させていただきました。

エラー文

default:

1 default: /tmp/vagrant-shell: line 15: pyenv: command not found 2 default: /tmp/vagrant-shell: line 16: pyenv: command not found 3 default: /tmp/vagrant-shell: line 17: pyenv: command not found 4 default: % Total % Received % Xferd Average Speed Time Time Time Current 5 default: Dload Upload Total Spent Left Speed 6 0 0 0 7 default: 0 0 0 0 0 --:--:-- --: 8 default: --:-- --:--:-- 0 9 0 0 0 0 0 0 0 10 default: 0 --:--:-- --:--:-- --:--:-- 11 default: 0 12100 1232 100 1232 0 0 3390 0 13 default: --:--:-- --:--:-- --:--:-- 14 default: 3384 15 16
default: + default: dpkg default: -s default: apt-transport-https default: + default: echo default: deb https://cli-assets.heroku.com/apt ./ default: + default: dpkg -s heroku-toolbelt default: + true default: + default: curl https://cli-assets.heroku.com/apt/release.key default: + default: apt-key default: add default: - default: % Total % Received % Xferd Average Speed Time Time Time Current default: Dload Upload Total Spent Left default: Speed 0 0 0 0 0 0 0 default: 0 --:--:-- --:--:-- --:--:-- 0 100 1737 100 1737 0 0 4873 0 --:--:-- --:--:-- --:--:-- 4879
default: + apt-get update
default: + apt-get install -y heroku
default: dpkg-preconfigure: unable to re-open stdin: No such file or directory
default: /tmp/vagrant-shell: line 23: pip: command not found default: /tmp/vagrant-shell: line 24: pip: command not found default: /tmp/vagrant-shell: line 25: pip: command not found The SSH command responded with a non-zero exit status. Vagrant assumes that this means the command failed. The output for this command should be in the log above. Please read the output to determine what went wrong.

vagrantfile

# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/xenial64" config.vm.network :"forwarded_port", guest: 5000, host: 5000 config.vm.synced_folder "~/python_vagrant/workspace", "/home/ubuntu/workspace", :create => true, mount_options: ['dmode=777','fmode=755'] config.vm.provision "shell", privileged: false, inline: <<-SHELL sudo apt-get -y upgrade sudo apt-get -y update # install essentials sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev libpng-dev # get pyenv and set path git clone https://github.com/yyuu/pyenv.git ~/.pyenv echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile echo 'eval "$(pyenv init -)"' >> ~/.profile . /home/ubuntu/.profile # install anaconda pyenv install anaconda3-5.0.1 pyenv rehash pyenv global anaconda3-5.0.1 # install Heroku CLI curl https://cli-assets.heroku.com/install-ubuntu.sh | sh # pip install pip install --upgrade pip pip install flask-httpauth pip install gunicorn SHELL end

エラー文にpyenvとpipがcommand not foundと書かれているのでそれが原因かなと思いますが…

エラー文をもとに色々調べてみましたが同じようなエラーになった人が少なく自分一人では解決に至らなかったので、質問させていただきました。

何か良い解決法があれば教えていただきたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

はじめに

Vagrantで、特に変更していないBOXイメージから仮想マシンを作成する場合、ログインユーザーは「vagrant」です。(ただし、ubuntuのboxイメージには、デフォルトユーザーの「ubuntu」も存在しています)

原因

プロビジョニング時のログインユーザーも「vagrant」なので、「~/.profile」は「/home/vagrant/.profile」として処理されます。

以下の処理では追記したファイルと、呼び出しているファイルが異なるため、更新が反映されず「pyenv」へのパスが通りません。

ruby

1 ...省略 2 3 echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile 4 echo 'eval "$(pyenv init -)"' >> ~/.profile 5 . /home/ubuntu/.profile # *** ここは、「/home/vagrant/.profile」が必要です 6 7 # install anaconda 8 pyenv install anaconda3-5.0.1 9 10 ...省略

対応

全体としてログインユーザーを「ubuntu」ではなく、「vagrant」として処理を書く必要があります。

質問で提示されているVagrantfileならば、共有先パスと環境変数の更新時の「.profile」の"ubuntu"を"vagrant"へ変更すれば対応できます。

ruby

1# -*- mode: ruby -*- 2# vi: set ft=ruby : 3 4Vagrant.configure("2") do |config| 5 config.vm.box = "ubuntu/xenial64" 6 config.vm.network :"forwarded_port", guest: 5000, host: 5000 7 config.vm.synced_folder "~/python_vagrant/workspace", "/home/vagrant/workspace", :create => true, mount_options: ['dmode=777','fmode=755'] 8 config.vm.provision "shell", privileged: false, inline: <<-SHELL 9 sudo apt-get -y upgrade 10 sudo apt-get -y update 11 12 # install essentials 13 sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev libpng-dev 14 15 # get pyenv and set path 16 git clone https://github.com/yyuu/pyenv.git ~/.pyenv 17 echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile 18 echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile 19 echo 'eval "$(pyenv init -)"' >> ~/.profile 20 . /home/vagrant/.profile 21 22 # install anaconda 23 pyenv install anaconda3-5.0.1 24 pyenv rehash 25 pyenv global anaconda3-5.0.1 26 27 # install Heroku CLI 28 curl https://cli-assets.heroku.com/install-ubuntu.sh | sh 29 30 # pip install 31 pip install --upgrade pip 32 pip install flask-httpauth 33 pip install gunicorn 34 SHELL 35end

投稿2019/09/29 00:00

StupidDog

総合スコア263

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Homaresan

2019/10/01 06:58

なるほど!上手くできました!ありがとうざいます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問