python v.3.7.4のvirtualenvの最新バージョン(16.7.2)には、「activate.ps1」スクリプト用の4つの追加行があり、Windows10 powerhsellで実行するとエラーが発生します:You must 'source' this script: PS> . .\ENV\Scripts\activate
どうすれば修正できますか? (私は、他のフォーラムの質問で述べられたすべて、およびWindowsとPowershellに関連するvirtualenvのマニュアルを読んで実行したことに注意してください。)
実行ポリシーをRemoteSignedに設定しました(他のフォーラムで推奨されています)。
Get-ExecutionPolicy -List
Scope ExecutionPolicy
----- ---------------
MachinePolicy Undefined
UserPolicy Undefined
Process Undefined
CurrentUser Undefined
LocalMachine RemoteSigned
Virtualenvをアクティブにしたいときは、.\ENV\Scripts\activate
問題は、新しい仮想環境を作成したときにvirtualenvによって自動生成されるactivate.ps1スクリプトの3〜6行目です。
if (@($null,"Internal") -notcontains $myinvocation.commandorigin) {
Write-Host -Foreground red "You must 'source' this script: PS> . $($myinvocation.invocationname)"
exit 33
}
のようだ $myinvocation.commandorigin
はInternalではなくRunspaceに設定されます
どうすれば修正できますか?何か案は?ありがとう:)))すべての自動生成を手動で調整したくないことに注意してくださいactivate.ps1
ファイル。
そのエラーメッセージを見てみましょう:
You must 'source' this script: PS> . .\ENV\Scripts\activate
うーん...-PS>
はおそらく単なるプロンプトなので、次のようになります。
. .\ENV\Scripts\activate
# ^
# |
# Check out this guy
つまり、孤独な.
パスの前、つまり、Powershellのdot-source operatorです。
ドキュメント によると、
現在のスコープでスクリプトを実行し、スクリプトが作成する関数、エイリアス、変数を現在のスコープに追加します。
私はvirtualenv
を確認していませんが、いくつかの変数を定義して、スクリプトの実行後にこれらの変数が確実に保持されるようにするには、現在のスコープで実行する必要があると思います。
だからこれはそれを修正するために実行しなければならないliteralコマンドです:
. .\ENV\Scripts\activate
参照用にスクリーンショットが添付されています。 同じ問題が発生しましたが、次のようにしました。
新しい仮想環境を作成します。
python -m venv directory
新しく作成されたディレクトリに移動します。
cd directory
仮想環境をアクティブ化します。
.\Scripts\activate
これで私の問題は解決しました。それが役に立てば幸い...
私もこの問題に直面しました。これを解決するために、次のように新しい仮想環境を作成しました。
python -m venv directory-name
有効にするために:
Scripts>./activate
そして今それはうまく働いています...