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

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

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

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

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

解決済

python-dotenvをpip install すると何が起きているのか?

退会済みユーザー

退会済みユーザー

総合スコア0

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

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

1回答

0評価

0クリップ

4355閲覧

投稿2018/10/07 04:59

編集2018/10/07 13:02

前提・実現したいこと

この質問をさせて頂いてから判明したことがあったのでリンクします。

FlaskでWebアプリケーションを作成したいので少しずつ調べながらやってます。

Flaskのデバッグ中にpython-dotenvを推奨する警告が出たのでinstallしてみたところ、
権限エラーが発生するようになることが分かりました。

(間違いがあれば指摘いただけるとうれしいです。)
python-dotenvは、
環境変数などを管理し外部公開する時に重要な情報を見せないように利用されることは調べてみて分かったのですが
pip installを実行したことによって
何が変わってしまっているのか、何をしなければいけないのかが分からなかったので質問させて頂くことにしました。

python-dotenvを入れるにあたって、flaskではどのような設定が必要になるのでしょうか?
また、それは既存のファイルを書き換えますか?
それともapp.pyなどを任意の場所に作成して以下のような変数を宣言するのでしょうか?
FLASK_APP="Hoge"

発生している問題・エラーメッセージ

pip install python-dotenv を実施すると下記ソースコードでPermissionErrorが起きる。

該当のソースコード

python

from flask import Flask, render_template app = Flask(__name__) @app.route('/') def index(): return render_template('index.html') if __name__ == '__main__': app.debug = True #ここでPermissionError app.run(host='127.0.0.1', port=8000)

試したこと

同じソースでpython-dotenvがあればエラー、なければエラーにならないこと。

.envディレクトリの権限がUserがフルコントロールであること。(右クリック→プロパティ→セキュリティ)
表示されているすべてのユーザーを一時的にフルコントロールにしてみましたがダメでした。

VisualStudioCodeからではなく、PowerShellを管理者実行しても権限エラーが出た。

試しにプロジェクトの読取専用(一部)を外してみましたが、変わりませんでした。

補足情報(FW/ツールのバージョンなど)

Windows10 HOME

VisualStudioCode

Python 3.6.6

(.env) > pip freeze
astroid==2.0.4
Click==7.0
colorama==0.3.9
Flask==1.0.2
isort==4.3.4
itsdangerous==0.24
Jinja2==2.10
lazy-object-proxy==1.3.1
MarkupSafe==1.0
mccabe==0.6.1
pylint==2.1.1
python-dotenv==0.9.1
rope==0.11.0
six==1.11.0
typed-ast==1.1.0
Werkzeug==0.14.1
wrapt==1.10.11


#追記①

VSCode のターミナル(Bash)で実行

Bash

$ powershell Windows PowerShell Copyright (C) Microsoft Corporation. All rights reserved. [PS](*'-')<D:\DevNotes\ProjectFolder> .env/Scripts/Activate (.env) [PS](*'-')<D:\DevNotes\ProjectFolder> pip list Package Version ----------------- ------- astroid 2.0.4 Click 7.0 colorama 0.3.9 Flask 1.0.2 isort 4.3.4 itsdangerous 0.24 Jinja2 2.10 lazy-object-proxy 1.3.1 MarkupSafe 1.0 mccabe 0.6.1 pip 18.1 pylint 2.1.1 python-dotenv 0.9.1 rope 0.11.0 setuptools 40.4.3 six 1.11.0 typed-ast 1.1.0 Werkzeug 0.14.1 wheel 0.32.1 wrapt 1.10.11 (.env) [PS](*'-')<D:\DevNotes\ProjectFolder> pip show python-dotenv Name: python-dotenv Version: 0.9.1 Summary: Add .env support to your django/flask apps in development and deployments Home-page: http://github.com/theskumar/python-dotenv Author: Saurabh Kumar Author-email: me+github@saurabh-kumar.com License: UNKNOWN Location: d:\devnotes\ProjectFolder.env\lib\site-packages Requires: Required-by: (.env) [PS](*'-')<D:\DevNotes\ProjectFolder> ## インタープリタをPython3.6.6(virtualenv) ## デバッグをPython:Flask で実行 Traceback (most recent call last): File "c:\program files (x86)\microsoft visual studio\shared\python36_64\Lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "c:\program files (x86)\microsoft visual studio\shared\python36_64\Lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\__main__.py", line 211, in <module> singlesession=args.single_session) File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\__main__.py", line 205, in main debug_main(addr, name, kind, *extra, **kwargs) File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_local.py", line 28, in debug_main run_module(address, name, *extra, **kwargs) File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_local.py", line 53, in run_module run(argv, addr, **kwargs) File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_local.py", line 125, in _run _pydevd.main() File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1752, in main globals = debugger.run(setup['file'], None, None, is_module) File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1099, in run return self._exec(is_module, entry_point_fn, module_name, file, globals, locals) File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1123, in _exec runpy._run_module_as_main(module_name, alter_argv=False) File "c:\program files (x86)\microsoft visual studio\shared\python36_64\Lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "c:\program files (x86)\microsoft visual studio\shared\python36_64\Lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "D:\DevNotes\ProjectFolder.env\lib\site-packages\flask\__main__.py", line 14, in <module> main(as_module=True) File "D:\DevNotes\ProjectFolder.env\lib\site-packages\flask\cli.py", line 894, in main cli.main(args=args, prog_name=name) File "D:\DevNotes\ProjectFolder.env\lib\site-packages\flask\cli.py", line 548, in main load_dotenv() File "D:\DevNotes\ProjectFolder.env\lib\site-packages\flask\cli.py", line 608, in load_dotenv dotenv.load_dotenv(path) File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 255, in load_dotenv return DotEnv(f, verbose=verbose).set_as_environment_variables(override=override) File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 95, in set_as_environment_variables for k, v in self.dict().items(): File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 74, in dict values = OrderedDict(self.parse()) File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 79, in parse f = self._get_stream() File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 62, in _get_stream return io.open(self.dotenv_path) PermissionError: [Errno 13] Permission denied: 'D:\DevNotes\ProjectFolder\.env'

次は仮想環境ではない、ローカルのpipです。

bash

$ pip freeze astroid==2.0.4 Click==7.0 colorama==0.3.9 cycler==0.10.0 future==0.16.0 isort==4.3.4 itsdangerous==0.24 Jinja2==2.10 kiwisolver==1.0.1 lazy-object-proxy==1.3.1 MarkupSafe==1.0 matplotlib==3.0.0 mccabe==0.6.1 numpy==1.15.2 pefile==2018.8.8 pylint==2.1.1 pyparsing==2.2.1 pypiwin32==223 python-dateutil==2.7.3 pywin32==223 six==1.11.0 typed-ast==1.1.0 virtualenv==16.0.0 Werkzeug==0.14.1 wrapt==1.10.11

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

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

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

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

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

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

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

ただいまの回答率
87.20%

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

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

質問する

関連した質問

同じタグがついた質問を見る

Flask

FlaskはPython用のマイクロフレームワークであり、Werkzeug・Jinja 2・good intentionsをベースにしています。

Python 3.x

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