繁体   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