Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django和构建部署问题_Django_Deployment_Mod Wsgi_Buildout_Recipe - Fatal编程技术网

Django和构建部署问题

Django和构建部署问题,django,deployment,mod-wsgi,buildout,recipe,Django,Deployment,Mod Wsgi,Buildout,Recipe,我正试图通过buildout来部署我现有的django项目,大致遵循以下说明 我的buildout.cfg文件是: [buildout] parts = django python develop = . eggs = myproject [django] recipe = djangorecipe version = 1.2.3 project = myproject projecte

我正试图通过buildout来部署我现有的django项目,大致遵循以下说明

我的buildout.cfg文件是:

[buildout]
parts       =     django python
develop     =     .
eggs        =     myproject

[django]
recipe      =     djangorecipe
version     =     1.2.3
project     =     myproject
projectegg  =     myproject
settings    =     settings
wsgi        =     true
eggs        =     ${buildout:eggs}

[python]
recipe      =     zc.recipe.egg
interpreter =     python
eggs        =     ${buildout:eggs}
有两个问题:

  • 首先,如果我通过./bin/python调用python解释器,那么import myproject会出现导入错误
  • 其次,如果我尝试加载django.wsgi文件,我也会得到一个apache错误
  • [Sun Oct 03 11:57:37 2010][error][client::1]mod_wsgi(pid=5045):无法将目标wsgi脚本“/usr/src/django/myproject/bin/django.wsgi”作为Python模块加载。 [Sun Oct 03 11:57:37 2010][error][client::1]mod_wsgi(pid=5045):wsgi脚本'/usr/src/django/myproject/bin/django.wsgi'引发的系统退出异常被忽略。 [Sun Oct 03 11:57:37 2010][error][client::1]回溯(最近一次呼叫最后一次): [Sun Oct 03 11:57:37 2010][error][client::1]文件“/usr/src/django/myproject/bin/django.wsgi”,第20行,在 [Sun Oct 03 11:57:37 2010][error][client::1]application=djangomipe.wsgi.main('myproject.settings',logfile='') [Sun Oct 03 11:57:37 2010][error][client::1]文件“/usr/src/django/myproject/eggs/djangomipe-0.20-py2.6.egg/djangomipe/wsgi.py”,主行第15行 [Sun Oct 03 11:57:37 2010][error][client::1]系统退出(1) 我的django.wsgi文件是(根据建议的更改进行更新):

    #!/usr/bin/python 导入系统 系统路径[0:0]=[ “/usr/src/django/myproject/src”, “/usr/src/django/myproject/eggs/djangomipe-0.20-py2.6.egg”, “/usr/src/django/myproject/eggs/zc.recipe.egg-1.3.2-py2.6.egg”, “/usr/src/django/myproject/eggs/zc.buildout-1.5.1-py2.6.egg”, “/usr/local/lib/python2.6/dist包”, “/usr/local/lib/python2.6/dist包”, “/usr/src/django/myproject/parts/django”, “/usr/src/django/myproject/eggs/setuptools-0.6c12dev_r85190-py2.6.egg”, “/usr/src/django/myproject/parts/django”, “/usr/src/django/myproject”, “/usr/src/django/myproject/src(/usr/src/django/myproject)”, “/usr/src/django/myproject”, ] 导入djangorecipe.wsgi application=djangomipe.wsgi.main('myproject.settings',logfile='') 我的bin/django文件是:

    #!/usr/bin/python import sys sys.path[0:0] = [ '/usr/src/django/myproject/src', '/usr/src/django/myproject/eggs/djangorecipe-0.20-py2.6.egg', '/usr/src/django/myproject/eggs/zc.recipe.egg-1.3.2-py2.6.egg', '/usr/src/django/myproject/eggs/zc.buildout-1.5.1-py2.6.egg', '/usr/local/lib/python2.6/dist-packages', '/usr/local/lib/python2.6/dist-packages', '/usr/src/django/myproject/parts/django', '/usr/src/django/myproject/eggs/setuptools-0.6c12dev_r85190-py2.6.egg', '/usr/src/django/myproject/parts/django', '/usr/src/django/myproject', '/usr/src/django/myproject/src(/usr/src/django/myproject)', '/usr/src/django/myproject', ] import djangorecipe.manage if __name__ == '__main__': djangorecipe.manage.main('myproject.settings') #!/usr/bin/python 导入系统 系统路径[0:0]=[ “/usr/src/django/myproject/src”, “/usr/src/django/myproject/eggs/djangomipe-0.20-py2.6.egg”, “/usr/src/django/myproject/eggs/zc.recipe.egg-1.3.2-py2.6.egg”, “/usr/src/django/myproject/eggs/zc.buildout-1.5.1-py2.6.egg”, “/usr/local/lib/python2.6/dist包”, “/usr/local/lib/python2.6/dist包”, “/usr/src/django/myproject/parts/django”, “/usr/src/django/myproject/eggs/setuptools-0.6c12dev_r85190-py2.6.egg”, “/usr/src/django/myproject/parts/django”, “/usr/src/django/myproject”, “/usr/src/django/myproject/src(/usr/src/django/myproject)”, “/usr/src/django/myproject”, ] 导入djangorecipe.manage 如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu': djangomipe.manage.main('myproject.settings')
    导入或apache服务器似乎都没有工作

    您可能需要为项目设置额外的路径,以便将其放在python路径上。你能粘贴你的django.wsgi和django文件吗

    请尝试以下配置:

    [buildout]
    parts       =     django python
    develop     =     .
    eggs        =     myproject
    extra_paths = 
        src(path_to your_project_source)
        ${buildout:directory}
    
    [django]
    recipe      =     djangorecipe
    version     =     1.2.3
    project     =     myproject
    projectegg  =     myproject
    settings    =     settings
    wsgi        =     true
    eggs        =     ${buildout:eggs}
    extra-paths = ${buildout:extra_paths}
    
    [python]
    recipe      =     zc.recipe.egg
    interpreter =     python
    eggs        =     ${buildout:eggs}
    extra-paths = ${buildout:extra_paths}
    
    您还可以确保django.wsgi具有可执行权限

    chmod +x django.wsgi
    

    可能需要为项目设置额外的路径,以便将其放在python路径上。你能粘贴你的django.wsgi和django文件吗

    请尝试以下配置:

    [buildout]
    parts       =     django python
    develop     =     .
    eggs        =     myproject
    extra_paths = 
        src(path_to your_project_source)
        ${buildout:directory}
    
    [django]
    recipe      =     djangorecipe
    version     =     1.2.3
    project     =     myproject
    projectegg  =     myproject
    settings    =     settings
    wsgi        =     true
    eggs        =     ${buildout:eggs}
    extra-paths = ${buildout:extra_paths}
    
    [python]
    recipe      =     zc.recipe.egg
    interpreter =     python
    eggs        =     ${buildout:eggs}
    extra-paths = ${buildout:extra_paths}
    
    您还可以确保django.wsgi具有可执行权限

    chmod +x django.wsgi
    

    有一件事情看起来很奇怪:
    ”/usr/src/django/myproject/src(/usr/src/django/myproject)
    在bin/django和bin/django.wsgi文件中

    我从没见过那种东西。看起来它可能会把东西弄坏

    最佳选择:快跑

    $> bin/python
    >>> import sys
    >>> print sys.path
    
    看看python自己认为它的路径是什么。Buildout设置的很好,但是你的脚本中有一些我以前从未见过的东西


    另一种选择:您确定您的实际代码没有包含最终作为应用程序导入错误的导入错误(如果您依赖于c级库,如PIL或cx_oracle,有时可能会发生这种情况)。有一件事情看起来很奇怪:
    '/usr/src/django/myproject/src(/usr/src/django/myproject)“
    在bin/django和bin/django.wsgi文件中

    我从没见过那种东西。看起来它可能会把东西弄坏

    最佳选择:快跑

    $> bin/python
    >>> import sys
    >>> print sys.path
    
    看看python自己认为它的路径是什么。Buildout设置的很好,但是你的脚本中有一些我以前从未见过的东西


    另一种选择:您是否确定您的实际代码没有包含最终导致应用程序导入错误的导入错误(如果您依赖于c级库,如PIL或cx_oracle,有时可能会发生这种情况)。

    您的问题是您在配方中设置了错误的鸡蛋依赖性

    在建筑部分,这条线

    eggs = myproject
    
    您正在将自己的myproject django项目设置为依赖项

    在此设置中,您需要设置作为django项目依赖项的所有python鸡蛋(包)

    比如说

    eggs =
        psycopg2
        south
        django-debug-toolbar
        django-extensions
    
    如果您的项目正在使用postgresql psycopg2连接器,请使用south进行数据库迁移,并使用django调试工具栏和django扩展

    您可以从该列表中删除python系统安装中的任何软件包


    鸡蛋设置中删除您的项目,这会混淆您的构建。

    您的问题是您在配方中设置了错误的鸡蛋依赖性

    在建筑部分,这条线

    eggs = myproject
    
    您正在将自己的myproject django项目设置为依赖项

    在此设置中,您需要设置作为django项目依赖项的所有python鸡蛋(包)

    比如说

    eggs =
        psycopg2
        south
        django-debug-toolbar
        django-extensions
    
    如果您的项目正在使用postgresql psycopg2连接器,请使用south进行数据库迁移,并使用django调试工具栏和django扩展

    您可以从该列表中删除python系统中的任何包