簡體   English   中英

virtualenv可以包含來自站點包的必要項目包

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM