簡體   English   中英

apt-get virtualenv 和 pip virtualenv 有什么區別?

[英]What's the difference between apt-get virtualenv and pip virtualenv?

apt-get 的 virtualenv 和 pip 的 virtualenv 有什么區別? 它們可以互換嗎?

apt-get install virtualenv

The following extra packages will be installed:
  python-chardet-whl python-colorama-whl python-distlib-whl python-html5lib-whl python-pip-whl python-requests-whl
  python-setuptools-whl python-six-whl python-urllib3-whl python3-virtualenv
The following NEW packages will be installed:
  python-chardet-whl python-colorama-whl python-distlib-whl python-html5lib-whl python-pip-whl python-requests-whl
  python-setuptools-whl python-six-whl python-urllib3-whl python3-virtualenv virtualenv

在高級別的apt是由您的系統維護的東西。 特別是 debian 系列中的任何東西都將使用apt來管理諸如驅動程序、編譯器、需要較低級別集成的東西。

這意味着對於需要與 FORTRAN 庫進行系統級集成的numpyscipy類的東西,包括pip依賴項實際上將不起作用。

一些與系統級依賴關系緊密相關的 python 包維護着apt包,這些包可以一次性為您提供完整的包,而無需在兩者之間進行協調。 缺點是因為 Canonical 的審查過程非常細致(應該如此),您將獲得 9/10 的較新版本的庫,您正在嘗試使用。

因此,簡而言之:您通常需要apt包來啟用更新的pip安裝,雖然相同的 python 依賴項可以通過apt ,但這些庫通常更舊,可能沒有所需的功能。

一種常見的解決方法是簡單地使用這些包中的一個而不是完整包中的系統依賴項。 您可以通過使用build-deps標志來做到這一點。 下面給出一個常見的例子:

apt-get build-dep python-scipy
pip install scipy

在您的 virtualenv 中工作時,這實際上會為您提供最新版本的 scipy。

aptapt-get - 安裝 debian 類似發行版,並將軟件包安裝在目錄/usr/lib/python2.7/dist-packages

pip install - python 包管理器並將包安裝在目錄/usr/local/lib/python2.7/dist-packages

這兩個目錄都在它正在尋找模塊導入的python的路徑中。

>>> import sys
>>> sys.path
['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-x86_64-linux-gnu', '/usr/local/lib/python2.7/dist-packages',  '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7']

他們使用單獨的存儲庫,您可以通過此處檢查從pip獲得的版本。 至於apt-get您必須檢查操作系統的包管理器版本和源列表,以查看從那里獲得的版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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