Python Microsoft Visual Studio 2019 Community PowerShell設定 新しいページはコチラ
提供: yonewiki
(→概要) |
(→概要) |
||
| 34行: | 34行: | ||
<syntaxhighlight2 lang="python"> | <syntaxhighlight2 lang="python"> | ||
| − | + | $ conda --version | |
conda 4.8.3 | conda 4.8.3 | ||
| − | + | $ python --version | |
Python 3.8.3 | Python 3.8.3 | ||
</syntaxhighlight2> | </syntaxhighlight2> | ||
| + | |||
| + | 以下のコマンドを使えば、conda環境が初期化されて、うまく動くようになるらしいのですが、残念な結果になります。やってみましょう。 | ||
| + | <syntaxhighlight2 lang="python"> | ||
| + | $ conda init powershell | ||
| + | </syntaxhighlight2> | ||
| + | |||
| + | |||
| + | このとき、初期化のためのprofile.ps1という名前のpowershell起動設定が出来上がります。 | ||
| + | *C:\Users\[ユーザ名]\Documents\WindowsPowerShell | ||
| + | というディレクトリです。 | ||
| + | |||
| + | でも、このとき作成されたコマンドは正しいのですが、上手く動作しません。もう一度パワーシェルをVisual Studioから起動すると以下のようなエラーが表示されるようになったと思います。 | ||
| + | |||
| + | <big><big>'''. : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\[ユーザ名]\Documents\WindowsPowerShell\profile | ||
| + | .ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=1 | ||
| + | 35170) を参照してください。 | ||
| + | 発生場所 行:1 文字:3 | ||
| + | + . 'C:\Users\[ユーザ名]\Documents\WindowsPowerShell\profile.ps1' | ||
| + | + 2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)2020年11月10日 (火) 00:00 (JST)~ | ||
| + | + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException | ||
| + | + FullyQualifiedErrorId : UnauthorizedAccess | ||
| + | '''</big></big> | ||
| + | |||
| + | <syntaxhighlight2 lang="python"> | ||
| + | (& "CProgramDataAnaconda3Scriptsconda.exe" "shell.powershell" "hook") | Out-String | Invoke-Expression | ||
| + | </syntaxhighlight2> | ||
| + | のような感じのコマンドです。コマンド自体は正しいですが、切り貼りしても動きません。 | ||
| + | |||
| + | なぜなのか | ||
| + | <syntaxhighlight2 lang="python"> | ||
| + | $ Get-ExecutionPolicy | ||
| + | Restricted | ||
| + | </syntaxhighlight2> | ||
| + | |||
| + | となるからです。これは権限に制限がかかった状態を意味しています。バッチスクリプトのようなコマンドが実行できません。あと、コマンド自体にも改良すべき点があります。 | ||
| + | |||
| + | |||
| + | 正しい動きとは何かを見ましょう。知ってるかもしれませんが… | ||
| + | |||
| + | |||
| + | スタートメニューから[Anaconda3]-[Anaconda Powershell Prompt(Anaconda3)]を起動してみましょう。そう!それが正しい動きなんです。 | ||
| + | |||
| + | |||
| + | (base)というプロンプトになったと思います。conda環境を制御できる状態です。conda環境=anacondaと考えてもよいと思います。この道を究めれば、その呼び方の違いの理解が進むと思います。極めている人は、またいい加減なこと言ってるなと思ったと思います。(base)表記は、環境を切り替えると(py38)のようにもなります。無い状態では大したことは出来ないです。 | ||
| + | |||
| + | |||
| + | この動作はどうやって実現されているのかを知るべく、今度はスタートメニューから[Anaconda3]-[Anaconda Powershell Prompt(Anaconda3)]で右クリックして表示されるメニューから[その他]-[ファイルの場所を開く]。それでエクスプローラでファイルが見れる状態になるので、[Anaconda Powershell Prompt(Anaconda3)]を右クリックして、[プロパティ]を選択します。するとリンク先欄に | ||
| + | |||
| + | <syntaxhighlight2 lang="python"> | ||
| + | %windir%\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy ByPass -NoExit -Command "& 'C:\ProgramData\Anaconda3\shell\condabin\conda-hook.ps1' ; | ||
| + | |||
| + | conda activate 'C:\ProgramData\Anaconda3' " | ||
| + | </syntaxhighlight2> | ||
| + | |||
| + | と上記のようなことが行われていることを知ることが出来ます。パワーシェルを起動するときにオプションが設定されていないといけないことになっています。これはWindowsの都合に合わせてくれています。Anaconda優秀ぅ~!なのに、Visual Studioから起動するときにはこれがありません。いろいろやっても普通に動くわけねぇ。って感じです。パワーシェルをVisual Studioから起動できるリンクの存在意義。なんのために。実に惜しい。VS Codeを使えってことか。 | ||