为什么升级到 Ubuntu 16.04(Xenial Xerus)后需要安装每个 Django 依赖项?

为什么升级到 Ubuntu 16.04(Xenial Xerus)后需要安装每个 Django 依赖项?

我从 Ubuntu 14.04(Trusty Tahr)升级到 16.04(Xenial Xerus),并安装了 Python 3.4 和 Django 1.9.2。

现在,当我使用以下命令运行 Django 项目时:

python3.4 manage.py runserver

我收到 SciPy、xslt、NumPy、pylab 等的导入错误。

我在过去 30-40 分钟内逐一安装依赖项,但每次都会出现新的导入错误。

我需要做什么?

答案1

Python 软件包特定于某个 P​​ython 版本。每个 Python 版本都有自己的软件包库,在文件系统级别上与其他版本的库隔离。为一个库安装的软件包不适用于另一个库。

因此,当你安装新版本的 Python 时,你必须在其库中安装所需的任何软件包,即使它们是在以前的版本中安装的。这也意味着以前安装的软件包在以前的 Python 版本中仍然可用。

最后,建议在 中安装 Django 及其依赖项virtualenv。这并不能免除您在更改版本时重新安装依赖项的“痛苦”,这只是避免使用仅 Django 需要的包污染系统的好方法,并且它还允许独立拥有多个版本的 Django 及其依赖项。当我说重新安装依赖项的“痛苦”时,如果遵循良好的做法,它根本不应该是一件痛苦的事。依赖项应在requirements.txt项目根目录中的文件中声明,重新安装所有内容应该是一件容易的事pip install -r requirements.txt

相关内容