--- tags: conda,環境建立 --- # 使用Window內建之Powershell 一般`Windows`使用者使用[conda](conda用法)通常應該是在內建的`Powershell`進行操作,但是在部份的電腦中常常遇到無法有效開啟`conda`的環境問題。 ![圖片](https://i.imgur.com/B3bofa5.png) 首先使用`conda`指令,發現`powershell`可以成功的呼叫出`conda`相關說明與指令,但是卻無法切換環境,**powershell**也無法在前面出現`(base)`。 ![conda指令訊息](https://i.imgur.com/kW2wfts.png) ## 使用者原則問題 重點在於`powershell`的 *.ps1* 檔案,這個是PowerShell寫的指令碼文字,你可以在記事本中寫一段PowerShell程式碼,然後將其儲存為“xxx.ps1”ps1檔案是PowerShell寫好的指令碼檔案。在Windows系統中,預設情況下是不允許執行.ps1檔案的。 這時候會發現執行了`conda init powershell`之後再打開`powershell`後會發現類似以下的訊息: ```shell . : 因為這個系統上已停用指令碼執行,所以無法載入 C:UsersUSERNAMEDocumentsWindows PowerShellprofile.ps1 檔案。如需詳細資訊,請參閱 about_Execution_Policies,網址為 https:/go.microsoft.com/fwlink/?LinkID=135170。 位於 線路:1 字元:3 + . 'C:UsersUSERNAMEDocumentsWindowsPowerShellprofile.ps1' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess ``` ## 解決方式 使用 `Powershell ISE`進行原則修改,利用系統管理員的身份打開。 ![powershell ISE](https://i.imgur.com/dCBKlVN.png) 並在頁面中輸入以下指令: ```shell Get-ExecutionPolicy ``` ![powershell ISE](https://i.imgur.com/HedMet4.png) 此時電腦預設應該是`Restricted`,這時候我們要輸入修改的指令 ```shell Set-ExecutionPolicy RemoteSigned ``` 最後在將程式關掉,Powershell以**系統管理員身份**重新開啟,並重新輸入`conda init powershell`指令,使其寫入指令檔後再次關閉`Powershell`,重新開啟後,應該就能看到前方寫著`(base)`的環境狀態了,這時候也能透過`conda activate [name]`進行環境上的切換了。