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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

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

Ubuntu

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

Q&A

解決済

1回答

4158閲覧

python 仮想環境へインストールしたライブラリが見つけられない

grilled_python

総合スコア237

Python 3.x

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

Ubuntu

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

0グッド

1クリップ

投稿2019/02/15 06:11

編集2019/02/15 06:30

ubuntu16.04
さくらvps

ubuntu16.04にpython3.6.8をインストールしております。
venvを使用して仮想環境を作っているのですがうまくpathが通っていないのかもしれません。
~/.bashrcにpathを記入してみました

export PYTHONPATH= "/home/ubuntu/venv/lib/python.3.6/site-packages"

普通にpipするとなぜかローカルにインストールされてしまうので下記のコマンドで場所を指定してpipしています
requirement.txtにはdjangoやuwsgiが記入されています。

pip install requirement.txt -t /home/ubuntu/venv/lib/python3.6/site-packages

venvをactivateしてpythonを探します

(venv) ubuntu@tkxxxx:~$ which python /home/ubuntu/venv/bin/python

uwsgiは見つからない

(venv) ubuntu@tk:~$ which uwsgi
(venv) ubuntu@tk:~$ which pip /usr/local/bin/pip

pip freezeでもuwsgiが見つからない

どの様にすれば
/home/ubuntu/venv/lib/python3.6/site-packages
にパスが通るでしょうか。
よろしくお願いいたします。

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

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

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

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

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

YouheiSakurai

2019/02/15 06:29

venvをactivateする前後のprintenvの結果を確認すると解決に近づくと思います。
grilled_python

2019/02/15 06:52

回答ありがとうございます。 activate前PATH=/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games PYTHONPATH= activate後 PATH=/home/ubuntu/venv/bin:/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games PYTHONPATH= となっております どちらもPYTHNPATHが空白となっております。これが原因でしょうか?
grilled_python

2019/02/15 07:04 編集

activate後 python import sys print(sys.path) ['', '/home/ubuntu/lib/python3.6/site-packages', '/home/ubuntu', '/usr/lib/python36.zip', '/usr/lib/python3.6', '/usr/lib/python3.6/lib-dynload', '/home/ubuntu/venv/lib/python3.6/site-packages'] pathは通っている様ですが、やはり which django which uwsgi などでは見つけられない様です
grilled_python

2019/02/15 07:32

acitivateした状態で (venv) ~$pip -V とすると pip 19.0.2 from /usr/local/lib/python3.6/dist-packages/pip (python 3.6) ローカルのpythonを指しています これが原因なのではないかと考えているのですがよく分かりません。 venvのpipを使用するにはどうすれば良いでしょうか?
YouheiSakurai

2019/02/15 07:48

(venv) ~$pip -V ではなく (venv) ~$python -m pip -V としてみてください。これでvenv配下のpipになれば、 (venv) ~$python -m pip install -r requirement.txt すれば良いと思います。
grilled_python

2019/02/15 08:18

(venv) ~$ python -m pip -V /home/ubuntu/venv/bin/python: No module named pip どうも後からインストールしたpython3.6にpipが入っていない様です。 curl -kL https://bootstrap.pypa.io/get-pip.py | sudo python3 pipを入れようとコマンドを入力すると Successfully installed pip-19.0.2 成功の表示がされるのですが再度コマンドを入力しても (venv) ~$ python -m pip -V /home/ubuntu/venv/bin/python: No module named pip どうやらローカルのpipが更新されている様です。 venv下のpythonにpipをインストールするにはどうすれば良いでしょうか?
grilled_python

2019/02/15 09:37

YouheiSakurai様 ありがとうございました。質問を閉じたいと思います。 もしよろしければベストアンサーを送らせてください。 投稿お待ちしております
YouheiSakurai

2019/02/15 09:42

お気遣いありがとうございます。私は方法を提案しただけですので、できればご自身で原因と解決策をまとめて自己解決として閉じていただくのが一番良いと思います。
guest

回答1

0

自己解決

pathが通っていないのは勘違いでした。
原因をまとめます。
まずwhichについて、これはlinuxのコマンドのフルパスを表示するもので
which uwsgi
としてもコマンドではないので当然パスは表示されませんでした。
which使い方を勘違いしていました。
パスが通ってないと勘違いした原因の一つはインストールしたpython3.6にpipが入っていなかった点があります。
おそらくpython3.6をインストールした際エラーが出てその際参考にした記事が
withoutオプションをつけるとうまくいくと書いていた気がします。その際
pipが抜けてしまったんだと思われます。

pip listでは確認できなかったライブラリも
pip3 list で全て確認できました。

アドバイスをいただいたYouheiSakurai様に重ねてお礼申し上げます。

投稿2019/02/15 10:21

grilled_python

総合スコア237

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問