热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么Django不会使用IPython?-Whywon'tDjangouseIPython?

(myvenv)me:srcorokusaki$pythonmanage.pyshell-iipythonPython2.7.2(default,Jun162012,12:3
(myvenv)me:src orokusaki$ python manage.py shell -i ipython
Python 2.7.2 (default, Jun 16 2012, 12:38:40) 
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> while True:
...     pass  # :(
...

I have IPython installed globally, and it works while this myvenv virtualenv is activated just fine. However, if I start the Django shell (with or without -i), it won't use IPython. I've never had this problem before.

我在全球范围内安装了IPython,它可以正常激活这个myvenv virtualenv。但是,如果我启动Django shell(带或不带-i),它将不会使用IPython。我以前从未遇到过这个问题。

Note: django-admin.py vs manage.py won't make a difference.

注意:django-admin.py vs manage.py不会产生任何影响。

3 个解决方案

#1


46  

Try installing it into virtualenv! :-)

尝试将其安装到virtualenv! :-)

#2


14  

I love iPython but don't like installing it in all my virtualenvs, and I've found a good solution to allow for that. Instead of using python manage.py shell, you can just use the system iPython directly.

我喜欢iPython,但不喜欢在我所有的virtualenvs中安装它,我找到了一个很好的解决方案来实现这一目标。您可以直接使用系统iPython,而不是使用python manage.py shell。

In order for this to work properly, you need to set the DJANGO_SETTINGS_MODULE so that it corresponds to your project.

为了使其正常工作,您需要设置DJANGO_SETTINGS_MODULE,使其与您的项目相对应。

export DJANGO_SETTINGS_MODULE=yourproject.settings

导出DJANGO_SETTINGS_MODULE = yourproject.settings

If this is your only Django project, the easiest solution is to add that line to your .bashrc.

如果这是您唯一的Django项目,最简单的解决方案是将该行添加到.bashrc中。

If you have several Django projects and want to avoid having to change the variable every time you switch between projects, you can add that export line above tailored to each project to the postactivate scripts of all your Django virtualenvs. For me, the postactivate script is at ~/.virtualenvs/myvenv/bin/postactivate.

如果你有几个Django项目,并希望避免每次在项目之间切换时都要更改变量,你可以将上面为每个项目定制的导出行添加到所有Django virtualenvs的postactivate脚本中。对我来说,postactivate脚本位于〜/ .virtualenvs / myvenv / bin / postactivate。

#3


1  

In my case, I really want to run IPython in multiple virtual environments (created using the default --no-site-packages) each used for a different Django project. I did not want to install IPython in each env.

在我的例子中,我真的想在多个虚拟环境中运行IPython(使用默认的--no-site-packages创建),每个环境都用于不同的Django项目。我不想在每个环境中安装IPython。

As @Arash mentioned, exporting the DJANGO_SETTINGS_MODULE works but it's difficult to manage it when you have multiple projects.

正如@Arash所提到的,导出DJANGO_SETTINGS_MODULE可以工作,但是当你有多个项目时很难管理它。

I finally solved this issue in two parts.

我终于分两部分解决了这个问题。

First I added the directories "/usr/lib/python2.7/dist-packages" and "/usr/lib/pymodules/python2.7"to sys.path in the /usr/bin/ipython script as mentioned here.

首先,我在/ usr / bin / ipython脚本中添加了目录“/usr/lib/python2.7/dist-packages”和“/usr/lib/pymodules/python2.7”到sys.path,如下所述。

Next, I use a manage_to_ipython.py script to create a django-project-specific script called runipython.py leveraging the manage.py file created by django-admin.py

接下来,我使用manage_to_ipython.py脚本创建一个名为runipython.py的django-project特定脚本,利用django-admin.py创建的manage.py文件

Once in each Django project, $cd then run python manage_to_ipython.py

在每个Django项目中,$ cd 然后运行python manage_to_ipython.py

Now, to run IPython simply type ./runipython.py

现在,要运行IPython,只需输入./runipython.py即可

The modified /usr/bin/ipython and the manage_to_ipython.py scripts can be found here.

可以在此处找到修改后的/ usr / bin / ipython和manage_to_ipython.py脚本。


推荐阅读
  • Java太阳系小游戏分析和源码详解
    本文介绍了一个基于Java的太阳系小游戏的分析和源码详解。通过对面向对象的知识的学习和实践,作者实现了太阳系各行星绕太阳转的效果。文章详细介绍了游戏的设计思路和源码结构,包括工具类、常量、图片加载、面板等。通过这个小游戏的制作,读者可以巩固和应用所学的知识,如类的继承、方法的重载与重写、多态和封装等。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • switch语句的一些用法及注意事项
    本文介绍了使用switch语句时的一些用法和注意事项,包括如何实现"fall through"、default语句的作用、在case语句中定义变量时可能出现的问题以及解决方法。同时也提到了C#严格控制switch分支不允许贯穿的规定。通过本文的介绍,读者可以更好地理解和使用switch语句。 ... [详细]
  • HDFS2.x新特性
    一、集群间数据拷贝scp实现两个远程主机之间的文件复制scp-rhello.txtroothadoop103:useratguiguhello.txt推pushscp-rr ... [详细]
  • 有没有一种方法可以在不继承UIAlertController的子类或不涉及UIAlertActions的情况下 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • ALTERTABLE通过更改、添加、除去列和约束,或者通过启用或禁用约束和触发器来更改表的定义。语法ALTERTABLEtable{[ALTERCOLUMNcolu ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
author-avatar
刁琼婉
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有