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

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

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

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

Python

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

Q&A

解決済

2回答

3173閲覧

venvでpython3.5を起動させたいのに、python2.7が起動してしまう

退会済みユーザー

退会済みユーザー

総合スコア0

Django

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

Python

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

0グッド

0クリップ

投稿2018/07/01 09:21

編集2018/07/01 23:10

venvを使って仮想環境を作り、その中でpythonを起動させています。
コマンドライン上で普通にpythonとタイプすると、
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
となり、python3が起動してくれます。

しかし、Djangoのcollectstaticを実行しようとすると、python2.7が起動してしまいます。

sudo python manage.py collectstatic Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/usr/local/lib/python2.7/dist-packages/django/core/management/__init__.py", line 353, in execute_from_command_line utility.execute() …

どうしたら、この場合もpython3で動かすことができるでしょうか?

ちなみに、
sudo python3 manage.py collectstaticとすると、

Traceback (most recent call last): File "manage.py", line 10, in <module> execute_from_command_line(sys.argv) File "/home/username/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 371, in execute_from_command_line utility.execute() File "/home/username/.local/lib/python3.5/site-packages/django/core/management/__init__.py", line 347, in execute django.setup() File "/home/username/.local/lib/python3.5/site-packages/django/__init__.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/home/username/.local/lib/python3.5/site-packages/django/apps/registry.py", line 89, in populate app_config = AppConfig.create(entry) File "/home/username/.local/lib/python3.5/site-packages/django/apps/config.py", line 90, in create module = import_module(entry) File "/usr/lib/python3.5/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 986, in _gcd_import File "<frozen importlib._bootstrap>", line 969, in _find_and_load File "<frozen importlib._bootstrap>", line 956, in _find_and_load_unlocked ImportError: No module named 'jet'

となります。
pip installで、その'jet'はインストールできているはずなのですが。
pip installすると、python3.5/site-packagesではなく、python2.7/site-packagesに入ってしまうということでしょうか。

(python2は使用しないので、削除できるなら削除したいです。)

どうしたらよいか、お気づきの点がありましたら、ご教示頂ければ幸いです。
よろしくお願い致します。

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

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

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

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

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

pepperleaf

2018/07/01 10:18

Django のバージョンとかはどうなっているのでしょうか?
退会済みユーザー

退会済みユーザー

2018/07/01 10:43 編集

Python3.5で起動するDjangoのバージョンは、2.0.6です。 Python2.7で起動するDjangoのバージョンは、1.9.6です。
退会済みユーザー

退会済みユーザー

2018/07/01 20:54

ご指摘頂き、ありがとうございます。Python2も共存させておいた方が良さそうですね。
退会済みユーザー

退会済みユーザー

2018/07/01 21:00

なお、(仮想環境名)$ sudo -E python を実行すると、python2.7.12が起動しました。
guest

回答2

0

ベストアンサー

原因はまだ分かりませんが、おそらく、sudoの場合は仮想環境の設定に関係なく、python2.7が呼び出されるということになっているのだと思います。

私が実行したかったコードは、python manage.py collectstaticというコードなのですが、実際に実行すると、permission denied 'test'
となり、staticファイルがあるべきディレクトリへのアクセスが認められませんでした。そこで、sudoをつけて実行しようとしたところ、python2.7が呼び出されてしまったということでした。

色々と調べてみたら、permission deniedの問題は、おそらく権限の問題ではないかと思いますので、sudoで解決すべきで問題ではなく、chmodで権限を与えて解決すべき問題だと思います。
https://qiita.com/xKxAxKx/items/f43d1bddbc4fb31013b1

そのため、申し訳ございませんが、いったんこの質問は閉じさせて頂きます。

投稿2018/07/02 00:24

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

0

condaで仮想環境を作っていてvenvは使った事がないのですが、
venv仮想環境管理
こちらを見る限りほとんど一緒ですね。
1、仮想環境を作りたいディレクトリに移動
2.仮想環境を作るコマンドを入力、この時自分で環境に名前を付ける。python3と明示する
3.作った仮想環境をアクティベートする。
4.アクティベートした仮想環境に使いたいライブラリなどをインストール。djangoなど

予想ですが、3のアクティべートを忘れている可能性はないでしょうか?

$ source [仮想環境の名前]/bin/activate #このコマンドを入力してアクティベートが完了すると $([仮想環境の名前])$ #先頭に名前が表示されているはずです。表示されていなければただ仮想環境を作っただけで利用してないことになります。

投稿2018/07/01 14:09

編集2018/07/01 14:18
grilled_python

総合スコア237

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

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

退会済みユーザー

退会済みユーザー

2018/07/01 20:53

ご回答頂き、ありがとうございます。 $ source 仮想環境名/bin/activate を実行し、(仮想環境名)$になった上で、作業をしておりますので、アクティベートを忘れているということはありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問