python - apt-get virtualenv 和 pip virtualenv 有什么区别?

标签 python pip virtualenv apt-get

apt-get 的 virtualenv 和 pip 的有什么区别?它们可以互换吗?

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 来管理诸如驱动程序、编译器和需要较低级别集成的东西。

这意味着像 numpyscipy 这样需要与 FORTRAN 库进行系统级集成的东西,包括 pip 依赖项实际上不会工作。

一些与系统级依赖关系紧密链接的 python 包维护 apt 包,这些包只是一次性为您提供完整的包,而无需在两者之间进行协调。不利的是,因为 Canonical 的审查过程非常细致(应该如此),您将获得 9/10 的您尝试使用的库的较新版本。

所以,简而言之:您将经常需要 apt 包来启用更新的 pip 安装,而同样的 python 依赖项可能通过 apt,这些库通常要老得多,可能没有所需的功能。

一个常见的解决方法是简单地使用这些包之一的系统依赖项而不是完整的包。您可以使用 build-deps 标志来执行此操作。下面给出了一个常见的例子:

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

这实际上会在您的 virtualenv 中工作时为您提供最新版本的 scipy。

关于python - apt-get virtualenv 和 pip virtualenv 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34862790/

相关文章:

python - Dask DummyEncoder 不返回所有列

python - 当用户点击 "continue"时,tkinter 窗口在播放音效后卡住

使用 lambda 在 AWS 上部署 Visual Studio 中的 Python 项目?

python - 列出命名空间包的所有子包

python - pip 错误 : unrecognized command line option ‘-fstack-protector-strong’

Python virtualenv --system-site-packages -- 意外的 pip 行为

python - 通过 Homebrew 并行安装 Python 2.7 和 3.3 - pip3 失败

python - 错误 : Unable to find vcvarsall. bat

python - 在 virtualenv 中安装 django 1.5(开发版)

django - 如何运行 nginx、gevent、virtualenv 和 django