Python Microsoft Visual Studio 2019 Community PowerShell設定 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(概要)
(概要)
 
1行: 1行:
 +
[[Python]]の記事へ戻る
 
== '''概要''' ==
 
== '''概要''' ==
 正直、皆はまともにVisualStudioでAnacondaをうまく使えているのか?疑問に思う程、使いにくい設定方法であり、ある意味での問題。ある意味での不具合とも言える動き。
+
 正直、皆はまともにVisual StudioでAnacondaをうまく使えているのか?疑問に思う程、使いにくい設定方法であり、ある意味での問題。ある意味での不具合とも言える動き。でもVisual StudioのPytnon環境タブからのPowershell起動はこのPython環境を操作するためとは言っていない。Powershllを起動してやるから後のややこしいPythonを操作出来るまでの手順は自分でやれと言っているのかも知れない。冷たいっす。
  
  
54行: 55行:
  
 
<syntaxhighlight2 lang="python">
 
<syntaxhighlight2 lang="python">
. : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\[ユーザ名]\Documents\WindowsPowerShell\profile
+
. : このシステムではスクリプトの実行が無効になっているため、ファイル C:\Users\[ユーザ名]\Documents\WindowsPowerShell\profile.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=135170) を参照してください。
.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」(https://go.microsoft.com/fwlink/?LinkID=1
+
35170) を参照してください。
+
 
発生場所 行:1 文字:3
 
発生場所 行:1 文字:3
 
+ . 'C:\Users\[ユーザ名]\Documents\WindowsPowerShell\profile.ps1'
 
+ . 'C:\Users\[ユーザ名]\Documents\WindowsPowerShell\profile.ps1'
68行: 67行:
  
 
<syntaxhighlight2 lang="python">
 
<syntaxhighlight2 lang="python">
(& "CProgramDataAnaconda3Scriptsconda.exe" "shell.powershell" "hook")  | Out-String | Invoke-Expression
+
(& "C:\ProgramData\Anaconda3\Scripts\conda.exe" "shell.powershell" "hook")  | Out-String | Invoke-Expression
 
</syntaxhighlight2>
 
</syntaxhighlight2>
  
  
 のような感じのコマンドです。コマンド自体は正しいですが、切り貼りしても動きません。
+
 のような感じのコマンドです。コマンド自体は正しいですが、再度profileとして、profile.ps1を呼び出しても動きません。以下のようなエラーが出ます。
 +
 
 +
 
 +
<syntaxhighlight2 lang="python">
 +
profile : 用語 'profile' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプログラムの名前として認識されません。名前が正しく記述されていることを確認し、パスが含まれている場合はそのパスが正しいことを確認してから、再試行してください。
 +
発生場所 行:1 文字:1
 +
+ profile
 +
+ ~~~~~~~
 +
    + CategoryInfo          : ObjectNotFound: (profile:String) [], CommandNotFoundException
 +
    + FullyQualifiedErrorId : CommandNotFoundException
 +
</syntaxhighlight2>
  
 
 なぜなのか
 
 なぜなのか
89行: 98行:
  
  
 (base)というプロンプトになったと思います。conda環境を制御できる状態です。conda環境=anacondaと考えてもよいと思います。この道を究めれば、その呼び方の違いの理解が進むと思います。極めている人は、またいい加減なこと言ってるなと思ったと思います。(base)表記は、環境を切り替えると(py38)のようにもなります。無い状態では大したことは出来ないです。
+
 (base)というプロンプトになったと思います。conda環境を制御できる状態です。conda環境=anacondaと考えてもよいと思います。この道を究めれば、その呼び方の違いの理解が進むと思います。極めている人は、またいい加減なこと言ってるなと思ったと思います。(base)表記は、環境を切り替えると(py38)のようにもなります。無い状態では大したことは出来ないです。その変わり続けて違うシステムを使うとすると、(base)状態では、まずいこともあります。例えばanacondaにも含まれるrubyとかのシステムが別でインストールしている分が動かず、anacond側のあまりruby構築を意識していない方が呼ばれたりする。そんな感じです。その場合にはconda deactivateというコマンドで(base)が外れます。
  
  
132行: 141行:
 
*Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
 
*Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
  
これを実行すれば権限を得ることが出来ます。
+
これを実行すれば権限を得ることが出来ます。RemoteSignedの部分は以下のようなものが選べます。
  
 +
*AllSigned
 +
:全ての権限を取得するわけではありません。通信を介する全てのスクリプト、およびローカルのスクリプトが署名付きで実行されなければならないとされています。opensslとかを使います。あまり実用的ではないです。
 +
*Bypass
 +
:これが一番、強い権限を取得するといっても過言ではない。何にもチェックもしなければ警告もしない。ある意味危険な状態。権限を得るということは危険なことが出来るということ。
 +
*RemoteSigned
 +
:これがよく使われる奴です。ローカルはなんでもよくて、通信を介するスクリプトは署名が必要。自分のPCにあるくらいだから安全でしょっていう奴です。ウィンドウズサーバの通常のポリシーです。
 +
*Restricted
 +
:ウィンドウズクライアントの標準のポリシーです。スクリプトの実行はできません。
 +
*Undefineed
 +
:他のユーザから設定された権限をクリアするものです。まずはRestrict状態に移行します。
 +
*Unrestricted
 +
:制限を解除するものです。署名付きスクリプトの場合は内容を確認してから実行します。Windows以外のpowershellでの標準です。
 +
 +
CurrentUserの部分は以下のものが選べます。
 +
*Process
 +
:起動したPowershell内だけの権限変更になります。
 +
*CurrentUser
 +
:自分自身に対しての変更
 +
*LocalMachine
 +
:全ユーザに対しての変更
 +
 +
<syntaxhighlight2 lang="python">
 
Set-ExecutionPolicy Restricted
 
Set-ExecutionPolicy Restricted
 +
</syntaxhighlight2>
  
 
権限は、上記のように戻すことも出来ます。緩めているとうっかり良くないコマンドを打つことはあるかもしれません。気になる人は、使う時にだけこまめにRemoteSignedという権限を得れば良いと思います。-Scopeの後ろは今使っている人にだけというものです。それ以上に必要はないと思います。この他にも権限状態はありますが、それは個別の違う案件で使ってみてください。RemoteSignedとCurrentUserの部分にいろいろなキーワードがあります。
 
権限は、上記のように戻すことも出来ます。緩めているとうっかり良くないコマンドを打つことはあるかもしれません。気になる人は、使う時にだけこまめにRemoteSignedという権限を得れば良いと思います。-Scopeの後ろは今使っている人にだけというものです。それ以上に必要はないと思います。この他にも権限状態はありますが、それは個別の違う案件で使ってみてください。RemoteSignedとCurrentUserの部分にいろいろなキーワードがあります。
 +
 +
 +
ここまでの知識を得た上でもう一度、AnacondaがPowershellを起動するときの引数を見てみると、更にBypassという権限で実行したいという感じで設定されていることが把握できると思います。
 +
 +
 +
 
 +
[[Python]]の記事へ戻る

2020年11月14日 (土) 00:00時点における最新版



個人用ツール
名前空間

変種
操作
案内
ツールボックス