0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

仮想環境の構築・起動 と pythonファイルのexe化

Last updated at Posted at 2022-09-04

【仮想環境の構築 作成】

https://www.acrovision.jp/career/?p=2254
venvで仮想環境を作成するには、「python -m venv ○○」(○○は仮想環境名)というコマンドを実行します。

cd H:\python_pg/Py_venv
 (仮想環境を作成したいフォルダ階層まで移動)

python -m venv ○○
 (仮想環境の作成 ○○ の部分に仮想環境の名前)

【仮想環境の起動】

「①必要なら」
Set-ExecutionPolicy コマンドを使用して、今操作しているVisual Studio Codeのターミナル (PowerShell) のみ、実行可能な RemoteSigned ポリシーを適用してあげる。

(例)(ターミナルで)
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process

「②次に、仮想環境を構築したフォルダまで移動する」
cd C:\python_pg\〇〇
(この、C:\python_pg\Py_venvの次に、仮想環境として構築したvenvという名前のフォルダを個人的に作った)

「③仮想環境の起動」
./〇〇/Scripts/Activate
(このvenv(●●)の部分は、仮想構築したフォルダ名)
(場合によったら、最初からこの一文でも実行できる)

「cd C:\python_pg/Py_venv」

「./venv_2/Scripts/Activate」

【仮想環境 切断】

「deactivate」

【もしpip でエラーがおきたら!】(ModuleNotFoundError: No module named 'pip')

Pythonにはensurepipモジュール1が付属しており、Python環境にpipをインストールできます。
py -m ensurepip --upgrade

【もし仮想環境でブレークポイントが止まらなかったら!】

launch.json に "justMyCode": false を追加する。ライブラリのメソッドでもブレークポイントが効くようにする

ブレークポイント.png

【うまく仮想環境のpythonのインタプリタからデバッグができなかったら?】

Vscodeの右下のほうに、実行中のPythonが表示されているので、それを確認。
インタプリタ.png
(もし違ったら設定を行う)


現在実行中の仮想環境を、deactivate


設定方法
VS Code を起動した状態で、Ctrl + Shift + P を押し、コマンドパレットを開きます。python: select と入力し、Python: Select Interpreter をクリックします。


Enter interpreter path... をクリックし、続いて Find... をクリックします。


エクスプローラーが起動するので、仮想環境にある python.exe を選択し、「インタープリターを選択」をクリックします。
(もしくはpython.exe を選択した後にpythonw.exeを選択 ?)


vscodeを開きなおします。

【もしデバッグにprintが表示されなかったら】

jsonファイルの”configurations”に”redirectOutput”: trueを追加

F5を実行し、デバッグコンソールを確認すると、printの内容が表示されている。

【exeファイル化】

pip install pyinstaller

pyinstaller 「メインのファイル」.py --name <出力exeファイル名> --onefile --icon <アイコンファイル> --noconsole

まずはスクリプトを保存した場所を確認すると、「dist」というフォルダが作成されていることが確認できますので、このフォルダの中身を確認します。
https://laboratory.kazuuu.net/create-an-executable-file-from-a-python-script-using-pyinstaller/

(exe化した後に、exeファイルの同じ階層にフォルダを指定したいときなど)

パスは、
MY_DIR = __file__ではなく、
MY_DIR = os.path.abspath(sys.argv[0]) # フォルダのパス
にしたほうがうまくいく?

MY_DIR = __file__では、windowsのキャッシュの場所にフォルダを作成してしまう。(なぜ?)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?