如何安装Python/Django模块?

22 投票
2 回答
41223 浏览
提问于 2025-04-17 07:25

我对Django完全不了解,但我需要在OSX上运行一个现有的项目。

我在项目的目录下运行 python manage.py runserver,结果出现了错误:Error: No module named cms

看起来是settings.py文件中的INSTALLED_APPS常量定义了需要的模块……但是我该怎么安装这些模块呢?

有没有什么标准的方法可以一次性安装这些依赖(就像Ruby的Bundler那样)?

2 个回答

9

INSTALLED_APPS里的内容是一些包的名称。是用来组织Python模块的一种方式。

当你导入一个包时,Python会在sys.path指定的目录中查找这个包的子目录。

所以,Python有一些特定的地方用来查找包。

如果你想通过名字把包安装到系统的正确位置,你可以下载一些Python源代码,然后运行setup.py脚本(这个脚本通常由库和应用提供)。

$ cd /tmp
$ wget http://pypi.python.org/packages/source/p/pytz/pytz-2011n.tar.bz2
$ tar xvfj pytz-2011n.tar.bz2
$ cd pytz-2011n
$ python setup.py install

不过,有更简单的方法,比如easy_install和它的后继者pip。使用这些工具,安装第三方包(或者Django应用)就变得简单了:

$ pip install pytz

或者,如果你使用的是系统默认的Python安装:

$ sudo pip install pytz

就这样。你现在可以在任何地方使用这个库。要检查它是否正确安装,只需在控制台中试一下:

$ python
Python 2.7.2 (default, Aug 20 2011, 05:03:24)
...
>>> import pytz # you would get an ImportError, if pytz could not be found
>>> pytz.__version__ 
'2011n'

为了简化说明(这篇文章已经太长了),假设pytz是一个第三方的Django应用。你只需要写:

INSTALLED_APPS = (
    'pytz',
)

这样pytz就可以在你的项目中使用了。

注意:如果你有时间,可以看看现代Python黑客工具:Virtualenv、Fabric和Pip这篇博客,里面介绍了一些很棒的Python基础工具。

33

如果你有一个requirements.txt文件,你可以一次性安装所有的依赖包!你只需要运行下面的命令:

pip install -r requirements.txt

如果没有这个文件,你就得一个一个地安装:

pip install django-cms

这里是PIP的文档: http://pypi.python.org/pypi/pip

如果你熟悉Ruby,可以把它和Ruby的GEM做个比较。

撰写回答