使用uwsgi部署Django项目时报错chdir(): No such file or directory [core/uwsgi.c line 2623]

第一步: 修改wsgi.py文件

import os

from django.core.wsgi import get_wsgi_application

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "md.settings")

application = get_wsgi_application()

第二步:安装uwsgi

pip install uwsgi

第三步:在项目meiduo_api目录下创建uwsgi配置文件 uwsgi.ini(我用的是.ini文件)

[uwsgi]
# plugin = python
#使用nginx连接时使用,Django程序所在服务器地址
socket =127.0.0.1:8001
#直接做web服务器使用,Django程序所在服务器地址
#http=127.0.0.1:8001
#项目目录
chdir = /home/python/Desktop//MD/md
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file = md/wsgi.py
# 进程数
processes = 4
# 线程数
threads = 2
# uwsgi服务器的角色
master = True
# 存放进程编号的文件
;pidfile = uwsgi.pid
; 日志文件,因为uwsgi可以脱离终端在后台运行,日志看不见。我们以前的runserver是依赖终端的
daemonize = uwsgi.log
# 指定依赖的虚拟环境
;virtualenv= /home/python/.virtualenvs/django_py3

第四步:启动uwsgi服务器

uwsgi --ini uwsgi.ini

注意如果想要停止服务器,除了可以使用kill命令之外,还可以通过

uwsgi --stop uwsgi.pid

这个时候就会报错:

current working directory: /home/python/Desktop/Md/md
detected binary path: /home/python/.virtualenvs/django_py3/bin/uwsgi
chdir() to /home/python/Desktop/MD/md
chdir(): No such file or directory [core/uwsgi.c line 2623]

报错内容就是:chdir(): No such file or directory [core/uwsgi.c line 2623]说没有这个uwsgi.c文件

 

解决:

请注意这句话:chdir() to /home/python/Desktop/MD/md

就是因为项目路径中的这个MD引起的,MD是我自己建立的文件夹,好像uwsgi识别不到自己建立的文件,把Django项目直接移动到Desktop就可以了(我用的是乌班图有界面的哦)

然后修改uwsgi.ini配置文件的项目路径:chdir = /home/python/Desktop/md

 

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,这是一个关于如何使用uWSGI部署Django项目的简单步骤: 1. 安装uWSGIDjango 首先,你需要安装uWSGIDjango。你可以使用pip安装这些软件包。在命令行中输入以下命令: ``` pip install uwsgi pip install django ``` 2. 创建Django项目 创建一个Django项目,并确保它能够在本地运行。 3. 创建uWSGI配置文件 创建一个名为uwsgi.ini的文件,该文件将包含uWSGI的配置信息。在这个文件中,你需要定义Django应用程序的位置、uWSGI服务器的配置和其他必要的配置。这是一个示例uwsgi.ini文件: ``` [uwsgi] project = myproject base_dir = /path/to/my/project chdir = %(base_dir)/%(project) module = %(project).wsgi:application home = /path/to/my/virtualenv processes = 4 threads = 2 socket = /tmp/%(project).sock chmod-socket = 664 vacuum = true ``` 在这个文件中,你需要将project和base_dir替换为你的项目名称和项目路径。你还需要将home设置为你的虚拟环境的路径,如果你没有使用虚拟环境,则可以将其删除。processes和threads指定了uWSGI服务器使用的进程和线程数。socket定义了uWSGI服务器的套接字位置。chmod-socket将套接字的访问权限设置为664,这样你的Web服务器可以访问它。vacuum=true将在uWSGI服务器停止清除套接字文件。 4. 启动uWSGI服务器 运行以下命令启动uWSGI服务器: ``` uwsgi --ini /path/to/your/uwsgi.ini ``` 5. 配置Web服务器 最后,你需要将Web服务器配置为将请求转发到uWSGI服务器。这个过程取决于你使用的Web服务器。如果你使用Nginx,你可以使用以下示例配置文件: ``` server { listen 80; server_name example.com; location / { include uwsgi_params; uwsgi_pass unix:/tmp/myproject.sock; } } ``` 在这个文件中,你需要将server_name替换为你的域名。uwsgi_pass指定了请求应该转发到的uWSGI服务器套接字位置。 这就是使用uWSGI部署Django应用程序的基本步骤。希望这可以帮助你开始。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值