[英]virtualenv v16.7.2 powershell activate script: "You must 'source' this script: PS> . .\ENV\Scripts\activate" error
python v.3.7.4 上最新版本的 virtualenv (16.7.2) 為“activate.ps1”腳本增加了 4 行,在 Windows10 powerhsell 上運行時會出現錯誤: You must 'source' this script: PS> . .\\ENV\\Scripts\\activate
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
設置為Runspace而不是Internal
我該如何解決? 有任何想法嗎? 謝謝 :))) 請注意,我不想手動調整每個 auto-gen activate.ps1
文件。
讓我們來看看那個錯誤信息:
You must 'source' this script: PS> . .\\ENV\\Scripts\\activate
嗯... - PS>
可能只是提示,這給我們留下了這個:
. .\ENV\Scripts\activate
# ^
# |
# Check out this guy
那個,寂寞.
路徑前面,就是powershell中的點源操作符。
根據文檔,它:
在當前作用域中運行腳本,以便將腳本創建的任何函數、別名和變量添加到當前作用域。
我沒有看過virtualenv
,但我假設它需要定義許多變量並確保這些變量在腳本運行后持續存在,它需要在當前范圍內運行。
所以這是你必須運行的文字命令來修復它:
. .\ENV\Scripts\activate
我也遇到過這個問題。 為了解決這個問題,我創建了一個新的虛擬環境,如下所示:
python -m venv directory-name
激活:
Scripts>./activate
現在它工作正常......
附上截圖供參考。 我剛剛遇到了同樣的問題,但我做了以下事情:
創建一個新的虛擬環境;
python -m venv directory
導航到新創建的目錄;
cd directory
激活虛擬環境。
.\\Scripts\\activate
這解決了我的問題。 我希望它有幫助...
我也面臨同樣的問題,通過使用這個解決了它:
創建虛擬環境作者:virtualenv environment
創建虛擬環境后
我通過使用激活它:
source environment/bin/activate
它激活了我的虛擬環境
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.