6
5

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 5 years have passed since last update.

PowerShellでPythonのvirtualenvのactivateを実行できるようにする(更にVisualStudioCodeのターミナルをPowerShellに変更する)

Last updated at Posted at 2018-10-13

Windows1のPowerShellは、デフォルトの設定では全てのスクリプトが実行禁止になっているので、「.ps1」のスクリプトファイルを実行できません。そのためPythonの仮想環境に入るためのスクリプトactivate.ps1を実行できません。

ここでは、実行ポリシー(Execution Policy)の設定を確認し、「.ps1」のスクリプトを実行できるよう実行ポリシーを変更する手順を記載します。

PowerShellの実行ポリシーを確認する

環境

  • Windows 7 (SP1) Ultima x64

まずはPowerShellを起動し、現在の実行ポリシーを確認するため、以下のコマンドを実行します。

Get-ExecutionPolicy

実行すると、デフォルトの実行ポリシーが表示されます。
このとき表示されるRestrictedは、全てのスクリプトの実行禁止を意味します。

PowerShellの実行ポリシーの変更

実行ポリシーはRemoteSignedが一番使い勝手がよいらしいので、次の手順で変更します。

RemoteSignedは、ローカルに保存されているスクリプトは実行可能で、インターネットからダウンロードしたスクリプト(非ローカルのスクリプト)は、署名されているもののみが実行可能。

変更するには、PowerShellを管理者権限で起動し、Set-ExecutionPolicyコマンドで次のように実行ポリシーを変更します。

Set-ExecutionPolicy RemoteSigned

再度、Get-ExecutionPolicyを実行することで、実行ポリシーがRemoteSignedに変更されることを確認できます。

VisualStudioCodeでターミナルをPowerShellに設定する場合

VisualStudioCodeのメニューのファイル>基本設定>設定を開き、ユーザー設定タブの、機能>設定で、terminal.integrated.shell.windowsの項目を探し、値を次のように設定。

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

Ctrl+@でターミナルを起動し新しいターミナルを開くと、新規のターミナルがPowerShellになることを確認できます。

因みに、コマンドプロンプトに戻す場合は、値を次のように設定します。

C:\Windows\system32\cmd.exe

余談ですが、Gitをインストールしている場合はGit-bashが使えるので、Git-bashのbash.exeまでのフルパスを指定することにより、ターミナルでbashを使用することができます。これで多くのシェルコマンドがターミナルで使えることになり、Unix/Linuxユーザーには重宝しますね!

CドライブのProgram FilesにGitをインストールしている場合

C:\Program Files\Git\bin\bash.exe

参考にしたサイト

  1. Windows Server 2012 R2は除きます。

6
5
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
6
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?