小编Wil*_*man的帖子

无法在IPython Notebook中导入Django模块

我正在从流浪者服务器启动IPython Notebook,如下所示:

ipython notebook --ip='*'
Run Code Online (Sandbox Code Playgroud)

当我尝试导入Django模块时,出现ImproperlyConfigured异常:

不正确配置:请求的设置数据库,但未配置设置。您必须先定义环境变量DJANGO_SETTINGS_MODULE或调用settings.configure()才能访问设置。

在普通的Shell中,我只是运行export DJANGO_SETTINGS_MODULE=web.settings,然后可以从任何Python解释器中加载Django模块,但是,这不适用于笔记本。

我尝试在笔记本中运行以下命令,但无济于事:

!export DJANGO_SETTINGS_MODULE=web.settings
!DJANGO_SETTINGS_MODULE=web.settings
Run Code Online (Sandbox Code Playgroud)

那么,如何在IPython Notebook中设置环境变量,以便导入Django模块?

django import module ipython

1
推荐指数
1
解决办法
901
查看次数

在全局命名空间中默认包含equal()吗?

这是关于C++中的默认全局命名空间的问题.我有以下代码使用g ++ clang-500.2.79编译和运行.

#include <string>
#include <iostream>

using std::string;
using std::endl; 
using std::cout;

bool is_palindrome(const string& str){
    return equal(str.begin(), str.end(), str.rbegin());
}

int main(){

    cout << "Hello is a palindrome: " << is_palindrome("Hello") << endl;
    cout << "madam is a palindrome: " << is_palindrome("madam") << endl;

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是,为什么这段代码编译正确?我忘了#include <algorithm>,并using std::equal在我的文件的开头.所以预期的行为是编译器抱怨.

http://en.cppreference.com/w/cpp/algorithm/equal上的示例确认我应该使用std::equal.

为了进一步研究这个问题,我试图确切地追踪equal()调用哪个版本的函数.作为C++的相对新手我也不知道如何做到这一点.我试过了,

cout << "The function is: " << equal << endl;
Run Code Online (Sandbox Code Playgroud)

这产生了编译器错误以及一些有趣的信息:

/usr/include/c++/4.2.1/bits/stl_algobase.h:771:5: 
note: 'std::equal' declared …
Run Code Online (Sandbox Code Playgroud)

c++

1
推荐指数
1
解决办法
82
查看次数

标签 统计

c++ ×1

django ×1

import ×1

ipython ×1

module ×1