16

我试图在 Windows 机器中设置 DJango restframework,运行代码时出现以下错误,

步骤完成。

  1. 从 github 下载了 rest-framework 和其他实用程序
  2. 使用 easy_install 我安装了所有软件包。

    这是确认消息,

    C:\Python27\Scripts>easy_install django-rest 搜索 django-rest 最佳匹配:django-rest 0.0.1 处理 django_rest-0.0.1-py2.7.egg django-rest 0.0.1 已经是easy中的活动版本-install.pth

    使用 c:\python27\lib\site-packages\django_rest-0.0.1-py2.7.egg 处理 django-rest 的依赖关系 完成处理 django-rest 的依赖关系

  3. 创建了一个新项目 firstwebservice ,它创建了所有文件。

  4. 编辑 settings.py 文件并包含 django rest,如下所示,

    INSTALLED_APPS = (
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.sites',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'rest_framework',
        # Uncomment the next line to enable the admin:
        # 'django.contrib.admin',
        # Uncomment the next line to enable admin documentation:
        # 'django.contrib.admindocs',
    )
    
  5. 跑项目

    Error:-No module named rest_framework...
    
4

3 回答 3

24

是否实际安装了 rest_framework 并在您的 PYTHONPATH 上?

这看起来像是一个基本的导入错误。

建议你:

通过运行“manage.py shell”并尝试“import rest_framework”和“from rest_framework import authtoken”,仔细检查一切是否安装正确。

如果可以的话,我会用 pip 安装不容易,easy 之前给我带来了很多这样的问题。

sudo pip install djangorestframework
于 2013-02-08T16:40:22.177 回答
4

您正在安装错误的软件包。该包被命名djangorestframework,而不是django-rest

于 2013-02-08T16:41:04.673 回答
0

这个“错误:-没有名为rest_framework的模块”的另一个完全不同的原因

我的虚拟环境文件夹不是我项目的子文件夹(例如,如果您的项目中没有“env”子文件夹,但您的虚拟环境位于另一个文件夹结构中)

例如:我曾经在一个单独的文件夹路径中创建所有虚拟环境,然后我有一个 bat 文件来激活每个项目中的虚拟环境。我的所有虚拟 env 子文件夹都有一个“主文件夹”——这使得它们都可以在同一个环境 PATH 中“找到”——这对我之前的许多项目都有效,不确定它是否是 python3 与 python2 的问题或一个 DRF 问题——但是——我刚刚从 python 2.7 升级到 3.6,这是我的经验——希望这对其他人有帮助。

(1) 导航到您的项目文件夹(例如D:\projects\myproject

(2)在项目文件夹中创建您的虚拟环境文件夹 virtualenv env

(3) 激活你的 virtualenv env\Scripts\activate

旧文件夹结构:(不起作用)

D:\projects\myproject\env <--- 这里是python代码

D:\python\virtualenvs\my_project <-- 这里是虚拟环境

新文件夹结构(此工程)

D:\projects\myproject <--- 这里是python代码

D:\projects\myproject\env <-- 这里是虚拟环境

于 2017-02-01T17:58:46.720 回答