質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Python 3.x

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

Ubuntu

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

Q&A

1回答

2380閲覧

プロジェクトディレクトリ内にpipenvで環境構築できない

branch

総合スコア70

bash

bash(Bourne-again-Shell)は sh(Bourne Shell)のインプリメンテーションに様々な機能が追加されたシェルです。LinuxやMac OS XではBashはデフォルトで導入されています。

Django

DjangoはPythonで書かれた、オープンソースウェブアプリケーションのフレームワークです。複雑なデータベースを扱うウェブサイトを開発する際に必要な労力を減らす為にデザインされました。

さくらのVPS

さくらのVPSは、さくらインターネット社が提供するVPS(仮想専用サーバー)です。高速なSSDの選択や複数台構成も可能。利用者に応じた柔軟なプランが用意されています。大規模システムにも対応可能なスケーラビリティを備えたホスティングサービスです。

Python 3.x

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

Ubuntu

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

0グッド

0クリップ

投稿2021/10/27 07:14

編集2021/10/27 07:45

#やりたいこと
Ubuntu18.04 + pyenv + pipenv + Django (+ Apache)でさくらVPSにサービスをデプロイしようと作業中です.
現在はttというユーザを作成し,/home/tt/app/TT/内でpipenvによる仮想環境を立てたいと思っています.(Pipfileからpipenv installで環境再現)
つまり目標/home/tt/app/TT/.venvが作成されることですが,うまくできません.

#ハマっているところ

こんな感じで,.localに作成されてしまいます.なんでやねん!
地味にpipenvにsudoが必要なのもよく分かっていません...

tt@%%%%%%~$ cd app/TT tt@%%%%%%~/app/TT$ pipenv install Command 'pipenv' is available in '/usr/local/bin/pipenv' The command could not be located because '/usr/local/bin' is not included in the PATH environment variable. pipenv: command not found tt@%%%%%%~/app/TT$ sudo pipenv install [sudo] password for tt: Creating a virtualenv for this project... Pipfile: /home/tt/app/TT/Pipfile Using /home/tt/.pyenv/versions/3.8.12/bin/python3.8 (3.8.12) to create virtualenv... ? Creating virtual environment...created virtual environment CPython3.8.12.final.0-64 in 114ms creator CPython3Posix(dest=/home/tt/.local/share/virtualenvs/TT-KX9vwXEc, clear=False, no_vcs_ignore=False, global=False) seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/home/tt/.local/share/virtualenv) added seed packages: pip==21.2.4, setuptools==58.1.0, wheel==0.37.0 activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator ? Successfully created virtual environment! Virtualenv location: /home/tt/.local/share/virtualenvs/TT-KX9vwXEc Installing dependencies from Pipfile.lock (2818ad)... ? ???????????????????????????????? 10/10 ― 00:00:06 To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.

#設定とか
PIPENV_VENV_IN_PROJECTはさすがに設定しています.
また,pyenvを入れたときに細々とPATH周りを見よう見まねでいじったりもしています.

~$ sudo cat ~/.bashrc # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth # append to the history file, don't overwrite it shopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTSIZE=1000 HISTFILESIZE=2000 # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # If set, the pattern "**" used in a pathname expansion context will # match all files and zero or more directories and subdirectories. #shopt -s globstar # make less more friendly for non-text input files, see lesspipe(1) [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" # set variable identifying the chroot you work in (used in the prompt below) if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt #force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}[\033[01;32m]\u@\h[\033[00m]:[\033[01;34m]\w[\033[00m]$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w$ ' fi unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a]$PS1" ;; *) ;; esac # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # colored GCC warnings and errors #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' # Add an "alert" alias for long running commands. Use like so: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]+\s*//;s/[;&|]\s*alert$//'\'')"' # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi # enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi # Settings around pyenv export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/bin:$PATH" eval "$(pyenv init -)" # Make pipenv environment in user directory export PIPENV_VENV_IN_PROJECT=1

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

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

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

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

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

guest

回答1

0

diff

1+export PIPENV_VENV_IN_PROJECT=1 2-PIPENV_VENV_IN_PROJECT=1

exportを指定していないため、.bashrcの読み込み・処理時にしか有効になっていないと思います。
(末尾なので、おそらくソース上は一度も使われない)

試しに、echo $PIPENV_VENV_IN_PROJECTを実行してみて下さい。
おそらく1とは出力されません。

投稿2021/10/27 07:24

attakei

総合スコア2738

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

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

branch

2021/10/27 07:44

ご指摘ありがとうございます。 `export PIPENV_VENV_IN_PROJECT=1`と修正した後,`source ~/.bashrc`して`echo $PIPENV_VENV_IN_PROJECT`の出力が1であることを確認したうえで`pipenv install`してみましたが, 相変わらず`/home/tt/.local`に作成されてしまいます.
attakei

2021/10/27 08:08

もし試していないなら、以前に作成されてしまった /home/tt/.local/share/virtualenvs/TT-KX9vwXEc を消してからpipenv installしてみて下さい。 venvの存在判定が先に来ていて、venvが存在せずに作成するときに初めて参照している可能性があります。
branch

2021/10/27 08:12

ありがとうございます. `sudo pipenv install`でダメだったときは,毎回そのままshellに入って`sudo pipenv --rm`をしてexitしてから ,`/home/tt/.local/share/virtualenvs/`が空であることを確認して作業していましたので,恐らく別に原因がありそうです...
attakei

2021/10/27 14:44

改めて質問文とコードなどを読み返しました。 確認ですが、pipenvはどのようにインストールしていますか? pyenvで用意したpython 3.8の実行環境下にインストールされていないように見えます。 pyenvを使っているならば、pyenvの実行環境化はユーザー領域にあります。 そのため、基本的にはsudoは必要ないはずです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問