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
来管理诸如驱动程序、编译器和需要较低级别集成的东西。
这意味着像 numpy
和 scipy
这样需要与 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/