前提・実現したいこと
この質問をさせて頂いてから判明したことがあったのでリンクします。
FlaskでWebアプリケーションを作成したいので少しずつ調べながらやってます。
Flaskのデバッグ中にpython-dotenvを推奨する警告が出たのでinstallしてみたところ、
権限エラーが発生するようになることが分かりました。
(間違いがあれば指摘いただけるとうれしいです。)
python-dotenvは、
環境変数などを管理し外部公開する時に重要な情報を見せないように利用されることは調べてみて分かったのですが
pip installを実行したことによって
何が変わってしまっているのか、何をしなければいけないのかが分からなかったので質問させて頂くことにしました。
python-dotenvを入れるにあたって、flaskではどのような設定が必要になるのでしょうか?
また、それは既存のファイルを書き換えますか?
それともapp.pyなどを任意の場所に作成して以下のような変数を宣言するのでしょうか?
FLASK_APP="Hoge"
発生している問題・エラーメッセージ
pip install python-dotenv を実施すると下記ソースコードでPermissionErrorが起きる。
該当のソースコード
python
1from flask import Flask, render_template 2 3app = Flask(__name__) 4 5 6@app.route('/') 7def index(): 8 return render_template('index.html') 9 10 11if __name__ == '__main__': 12 app.debug = True 13 #ここでPermissionError 14 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
1$ powershell 2Windows PowerShell 3Copyright (C) Microsoft Corporation. All rights reserved. 4 5[PS](*'-')<D:\DevNotes\ProjectFolder> .env/Scripts/Activate 6(.env) [PS](*'-')<D:\DevNotes\ProjectFolder> pip list 7Package Version 8----------------- ------- 9astroid 2.0.4 10Click 7.0 11colorama 0.3.9 12Flask 1.0.2 13isort 4.3.4 14itsdangerous 0.24 15Jinja2 2.10 16lazy-object-proxy 1.3.1 17MarkupSafe 1.0 18mccabe 0.6.1 19pip 18.1 20pylint 2.1.1 21python-dotenv 0.9.1 22rope 0.11.0 23setuptools 40.4.3 24six 1.11.0 25typed-ast 1.1.0 26Werkzeug 0.14.1 27wheel 0.32.1 28wrapt 1.10.11 29(.env) [PS](*'-')<D:\DevNotes\ProjectFolder> pip show python-dotenv 30Name: python-dotenv 31Version: 0.9.1 32Summary: Add .env support to your django/flask apps in development and deployments 33Home-page: http://github.com/theskumar/python-dotenv 34Author: Saurabh Kumar 35Author-email: me+github@saurabh-kumar.com 36License: UNKNOWN 37Location: d:\devnotes\ProjectFolder.env\lib\site-packages 38Requires: 39Required-by: 40(.env) [PS](*'-')<D:\DevNotes\ProjectFolder> 41 42## インタープリタをPython3.6.6(virtualenv) 43## デバッグをPython:Flask で実行 44 45Traceback (most recent call last): 46File "c:\program files (x86)\microsoft visual studio\shared\python36_64\Lib\runpy.py", line 193, in _run_module_as_main 47"__main__", mod_spec) 48File "c:\program files (x86)\microsoft visual studio\shared\python36_64\Lib\runpy.py", line 85, in _run_code 49exec(code, run_globals) 50File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\__main__.py", line 211, in <module> 51singlesession=args.single_session) 52File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\__main__.py", line 205, in main 53debug_main(addr, name, kind, *extra, **kwargs) 54File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_local.py", line 28, in debug_main 55run_module(address, name, *extra, **kwargs) 56File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_local.py", line 53, in run_module 57run(argv, addr, **kwargs) 58File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_local.py", line 125, in _run 59_pydevd.main() 60File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1752, in main 61globals = debugger.run(setup['file'], None, None, is_module) 62File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1099, in run 63return self._exec(is_module, entry_point_fn, module_name, file, globals, locals) 64File "c:\Users\defau.vscode\extensions\ms-python.python-2018.8.0\pythonFiles\experimental\ptvsd\ptvsd\_vendored\pydevd\pydevd.py", line 1123, in _exec 65runpy._run_module_as_main(module_name, alter_argv=False) 66File "c:\program files (x86)\microsoft visual studio\shared\python36_64\Lib\runpy.py", line 193, in _run_module_as_main 67"__main__", mod_spec) 68File "c:\program files (x86)\microsoft visual studio\shared\python36_64\Lib\runpy.py", line 85, in _run_code 69exec(code, run_globals) 70File "D:\DevNotes\ProjectFolder.env\lib\site-packages\flask\__main__.py", line 14, in <module> 71main(as_module=True) 72File "D:\DevNotes\ProjectFolder.env\lib\site-packages\flask\cli.py", line 894, in main 73cli.main(args=args, prog_name=name) 74File "D:\DevNotes\ProjectFolder.env\lib\site-packages\flask\cli.py", line 548, in main 75load_dotenv() 76File "D:\DevNotes\ProjectFolder.env\lib\site-packages\flask\cli.py", line 608, in load_dotenv 77dotenv.load_dotenv(path) 78File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 255, in load_dotenv 79return DotEnv(f, verbose=verbose).set_as_environment_variables(override=override) 80File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 95, in set_as_environment_variables 81for k, v in self.dict().items(): 82File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 74, in dict 83values = OrderedDict(self.parse()) 84File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 79, in parse 85f = self._get_stream() 86File "D:\DevNotes\ProjectFolder.env\lib\site-packages\dotenv\main.py", line 62, in _get_stream 87return io.open(self.dotenv_path) 88PermissionError: [Errno 13] Permission denied: 'D:\DevNotes\ProjectFolder\.env' 89
次は仮想環境ではない、ローカルのpipです。
bash
1$ pip freeze 2astroid==2.0.4 3Click==7.0 4colorama==0.3.9 5cycler==0.10.0 6future==0.16.0 7isort==4.3.4 8itsdangerous==0.24 9Jinja2==2.10 10kiwisolver==1.0.1 11lazy-object-proxy==1.3.1 12MarkupSafe==1.0 13matplotlib==3.0.0 14mccabe==0.6.1 15numpy==1.15.2 16pefile==2018.8.8 17pylint==2.1.1 18pyparsing==2.2.1 19pypiwin32==223 20python-dateutil==2.7.3 21pywin32==223 22six==1.11.0 23typed-ast==1.1.0 24virtualenv==16.0.0 25Werkzeug==0.14.1 26wrapt==1.10.11
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/10/07 13:03 編集
退会済みユーザー
2018/10/08 06:07