首页 文章

导入错误:没有名为django的模块

提问于
浏览
15

我正在使用centos linux .

我有django的python 2.6,现在我升级到python 2.7 .
Python 2.6位于/usr/lib/python2.6中 .
Python 2.7位于/usr/local/lib/python2.7中 .
它们都有site-packages目录,它们都包含django 1.2 .

如果我运行python我得到2.7版本 .
我的问题是如果尝试导入django我得到

ImportError:没有名为django的模块

我不确定我的PYTHONPATH在哪里定义,如果这是我需要改变的 . 任何人 ?

我最终 Build 了2.6 site-packages目录的符号链接 .

5 回答

  • 13

    要检查路径,可以使用以下代码:

    import sys     
    print(sys.path)
    

    如果您已经知道django的安装位置,那么应该很容易测试所需的目录是否在 directory in sys.path 的路径中 .

    关于 PYTHONPATH 的定义位置,请注意它是一个环境变量,因此您可以使用以下命令检查其值(如果已定义): echo $PYTHONPATH

  • 9

    在linux下,您可以在.profile或.bashrc中设置PYTHONPATH环境变量 . 您可以通过更改到主目录(cd~)直接从终端编辑它,然后编辑文件(nano .bashrc),或者使用gtkedit或vim或其他任何内容打开文件,并添加:

    PYTHONPATH=/usr/local/lib/python2.7/site-packages:/another/path/etc
    

    如果要在编辑配置文件之前对其进行测试,可以将其从终端导出为:

    export PYTHONPATH=/local/lib/python2.7/site-packages
    

    我假设你是从命令行直接运行的 . 如果您在apache中将其作为wsgi模块运行,则可以从wsgi文件中将其添加到syspath中:

    import sys
    sys.path.append('/usr/local/lib/python2.7/site-packages')
    
  • 13

    我有同样的错误,这解决了我的问题

    python -m pip install django

    :)完成!

  • 11

    尝试

    pip freeze
    

    此命令显示系统中安装了哪些软件包,然后以root权限运行

    pip install django
    

    然后用命令创建一个新项目

    django-admin.py startproject mysite
    

    然后开始你的项目

    cd path/to/mysite
    ./manage.py runserver
    

    在文件wsgi.py中添加此行

    import os
    import sys
    DJANGO_PATH =  os.path.join(os.path.abspath(os.path.dirname(__file__)), '..')
    sys.path.append(DJANGO_PATH)
    
  • 10

    尝试打印 sys.path 以查看路径中的内容 . Django需要在列出的其中一个目录中 . Windows上的示例:

    >>> import sys
    >>> for p in sys.path: print p
    
    C:\Python27\Lib\idlelib
    C:\Windows\system32\python27.zip
    C:\Python27\DLLs
    C:\Python27\lib
    C:\Python27\lib\plat-win
    C:\Python27\lib\lib-tk
    C:\Python27
    C:\Python27\lib\site-packages
    >>>
    

相关问题