Python Microsoft Visual Studio 2019 Community PowerShell設定のソースを表示
新しいページはコチラ
移動:
案内
,
検索
== '''概要''' == 正直、皆はまともにVisualStudioでAnacondaをうまく使えているのか?疑問に思う程、使いにくい設定方法であり、ある意味での問題。ある意味での不具合とも言える動き。 こういったものに対処した記録です。 この記事を読み始める場合の前提条件。 *Anaconda3をVisualStudioを入れた後でインストールした。 :先にAnaconda3を入れた場合は、後からPython環境の追加設定をする必要があるかもしれません。その場合のやり方は簡単なので、省略っすかね。Python環境タブの一番上のPython環境を追加をクリックして、既存の環境をクリックして、プレフィックスパスをAnacondaをインストールしたディレクトリにするだけです。 *Python開発環境を有効にしたVisualStudioをインストールした。 :Visual Studioをインストールした時にPython2.xとかPython3.xとかminiondaとか入れていても入れてなくてもいいです。でも、できれば入れてない方がいいかもしれませんがどうしてもPython3.6以上系を入れたいとかっていう人は入れてください。Anacondaの中でPython3.xを使うことが出来るので、必要はないと思いますが、どうしても単独環境がいるんや。っていう場合もあるかもしれないので、その場合は割かし大変な作業になりますが、切り替えて使ってもらえればと思います。 *Visual Studioを起動するとPython環境タブが表示できるようになっている。 :Visual StudioでPython開発環境を入れればタブは表示できるようになっていて、Ctrl+KとかCtrl+@で表示できます。メニューで言えば[表示]-[その他ウィンドウ]-[Python環境]です。 *Python環境タブでAnaconda3とPython3.8が認識されている。 :Anacondaをインストールするときに違う設定でインストールしたなら認識されているものが違うのかもしれません。現時点、何も手を加えずインストールしたら、先に述べた二つが認識できます。少なくともAnacondaが認識されていていればよいです。 *AnacondaへPathの環境変数追加の設定をした。 :コントロールパネルの[システム]の[システムの詳細設定]の[詳細設定]タブの[環境変数]でシステム側のpathという項目を編集して、新規ボタンから3つを登録します。 :*C:\ProgramData\Anaconda3 :*C:\ProgramData\Anaconda3\Scripts :*C:\ProgramData\Anaconda3\Library\bin ::C:\ProgramData\Anaconda3はインストールパスなので、違う場所にしている場合は合わせてください。 で、前提条件を満たしている場合。 以下のような具合にPowershellが起動します。 [[ファイル:2020-11-10_17h38_57.png|400px|thumb|none|Powershellを起動]] 普通に起動します。でも問題があるので、全部は動きません。このときPowershellの制限がかかっているために動かないという感じです。 ちなみに、現時点の話なので、AnacondaとPythonのバージョンを示しておきます。 <syntaxhighlight2 lang="python"> $ conda --version conda 4.8.3 $ python --version Python 3.8.3 </syntaxhighlight2> 以下のコマンドを使えば、conda環境が初期化されて、うまく動くようになるらしいのですが、残念な結果になります。やってみましょう。 <syntaxhighlight2 lang="python"> $ conda init powershell </syntaxhighlight2> このとき、初期化のためのprofile.ps1という名前のpowershell起動設定が出来上がります。 *C:\Users\[ユーザ名]\Documents\WindowsPowerShell というディレクトリです。 でも、このとき作成されたコマンドは正しいのですが、上手く動作しません。もう一度パワーシェルをVisual Studioから起動すると以下のようなエラーが表示されるようになったと思います。 <span style="font-size: xx-large !important; font-weight: 800 !important;"> <syntaxhighlight2 lang="python"> . : このシステムではスクリプトの実行が無効になっているため、ファイル 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' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : セキュリティ エラー: (: ) []、PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess </syntaxhighlight2> </span> というエラーです。 中身は以下のようなモノで <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を使えってことか。
Python Microsoft Visual Studio 2019 Community PowerShell設定
に戻る。
個人用ツール
ログイン
名前空間
ページ
議論
変種
表示
閲覧
ソースを表示
履歴表示
操作
検索
案内
メインページ
コミュニティ・ポータル
最近の出来事
最近の更新
おまかせ表示
ヘルプ
ツールボックス
リンク元
関連ページの更新状況
特別ページ