[英]Can virtualenv include necessary project packages from site-packages
運行命令行:
virtualenv --system-site-packages venv
我期待venv文件夾venv\\Lib\\site-packages
包含位於以下項目中的所有必需庫: C:\\Users\\XXX\\AppData\\Local\\Programs\\Python\\Python36\\Lib\\site-packages\\
但事實並非如此,只安裝了少數。
例如,我的程序目前使用的是pdfminer
C:\\Users\\XXXX\\AppData\\Local\\Programs\\Python\\Python36\\Lib\\site-packages\\
我希望它包含在venv\\Lib\\site-packages
但不會被復制。
有什么建議?
--system-site-packages
不復制包,它只允許virtualenv中的python訪問C:\\Users\\XXX\\AppData\\Local\\Programs\\Python\\Python36\\Lib\\site-packages\\
。
無法復制包,因為它們可能依賴於其安裝目錄。 如果你想在virtualenv中使用這些軟件包,請不要使用--system-site-packages
並在virtualenv中安裝所有軟件包。
virtualenv環境與剛剛安裝新版本的Python相同。 它沒有Python提供的標准軟件包以外的軟件包。 如果你想要其他軟件包,你必須使用'pip'來安裝它們,或者你使用你正在使用的本機Python版本來安裝它們。
所以一般來說,只需要執行pip install <packagename>
。
如果您發現自己經常想要使用一組標准的基本軟件包創建virtualenvs,那么將一個requirements.txt文件放在一起,列出您要作為基礎安裝的所有軟件包,並在新的內部執行pip install -r requirements.txt
virtualenv,就在您創建它之后。
關於virtualenv的一個好處是它全部屬於你。 您的用戶擁有100%的權限,這與系統擁有的基本Python版本不同。 要將新軟件包安裝到基本Python版本中,您通常必須具有root訪問權限(sudo權限)。 使用virtualenvs,你不需要特殊的權限(事實上,如果你在virtualenv中使用sudo
,你將會搞砸)安裝你想要的所有軟件包。 您所做的一切都在您自己的主目錄中。 另一個巧妙的事情是,當你完成virtualenv時,你只需丟棄包含它的根目錄。
如果不強制使用virtualenv,我建議和Anaconda一起使用。 這幾乎可以幫助你解決問題。
Conda作為包管理器可幫助您查找和安裝包。 默認情況下,已安裝了相當多的軟件包,以便為您的項目快速設置。 要檢查終端中安裝的軟件包列表,請鍵入:conda list以獲取使用conda安裝的軟件包。
如果您需要一個需要不同版本Python的軟件包,則無需切換到其他環境管理器,因為conda也是一個環境管理器。
只需幾個命令,您就可以設置一個完全獨立的環境來運行不同版本的Python,同時繼續在正常環境中運行您的常用Python版本
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.