GVKun编程网logo

OSError:[Errno 2]在Django中使用python子进程时,没有此类文件或目录(python子进程没有连接怎么办)

22

对于想了解OSError:[Errno2]在Django中使用python子进程时,没有此类文件或目录的读者,本文将提供新的信息,我们将详细介绍python子进程没有连接怎么办,并且为您提供关于/.p

对于想了解OSError:[Errno 2]在Django中使用python子进程时,没有此类文件或目录的读者,本文将提供新的信息,我们将详细介绍python子进程没有连接怎么办,并且为您提供关于/.platform/hooks/':将Django App部署到AWS Elastic Beanstalk时没有此类文件或目录、Cython:“严重错误:numpy / arrayobject.h:没有此类文件或目录”、django -supervisorctl总是报告错误:ERROR(没有此类文件)、Heroku和Django:“ OSError:无此类文件或目录:'/ app / {myappname} / static'”的有价值信息。

本文目录一览:

OSError:[Errno 2]在Django中使用python子进程时,没有此类文件或目录(python子进程没有连接怎么办)

OSError:[Errno 2]在Django中使用python子进程时,没有此类文件或目录(python子进程没有连接怎么办)

我正在尝试运行一个程序以使用Python代码在subprocess.call()其中进行一些系统调用,从而引发以下错误:

Traceback (most recent call last):      File "<console>", line 1, in <module>      File "/usr/lib/python2.7/subprocess.py", line 493, in call      return Popen(*popenargs, **kwargs).wait()      File "/usr/lib/python2.7/subprocess.py", line 679, in __init__errread, errwrite)      File "/usr/lib/python2.7/subprocess.py", line 1249, in _execute_child      raise child_exception      OSError: [Errno 2] No such file or directory

我的实际Python代码如下:

url = "/media/videos/3cf02324-43e5-4996-bbdf-6377df448ae4.mp4"real_path = "/home/chanceapp/webapps/chanceapp/chanceapp"+urlfake_crop_path = "/home/chanceapp/webapps/chanceapp/chanceapp/fake1"+urlfake_rotate_path = "/home/chanceapp/webapps/chanceapp.chanceapp/fake2"+urlcrop = "ffmpeg -i %s -vf "%(real_path)+"crop=400:400:0:0 "+ "-strict -2 %s"%(fake_crop_path)rotate = "ffmpeg -i %s -vf "%(fake_crop_path)+"transpose=1 "+"%s"%(fake_rotate_path)move_rotated = "mv"+" %s"%(fake_rotate_path)+" %s"%(real_path)delete_cropped = "rm "+"%s"%(fake_crop_path)#system calls:subprocess.call(crop)

我可以得到一些有关如何解决此问题的建议吗?

答案1

小编典典

使用shell=True,如果你传递一个字符串subprocess.call

从文档:

如果传递单个字符串,则shell必须为True,否则该字符串必须简单地命名要执行的程序而无需指定任何参数。

subprocess.call(crop, shell=True)

要么:

import shlexsubprocess.call(shlex.split(crop))

/.platform/hooks/':将Django App部署到AWS Elastic Beanstalk时没有此类文件或目录

/.platform/hooks/':将Django App部署到AWS Elastic Beanstalk时没有此类文件或目录

如何解决/.platform/hooks/'':将Django App部署到AWS Elastic Beanstalk时没有此类文件或目录?

我正在尝试将Django应用程序部署到AWS ElasticBeanStalk。

我按照标记正确答案中的所有指南进行操作,但仍然出现以下错误:

[INFO] -----------------------Command Output-----------------------
[INFO]  find: ''/.platform/hooks/'': No such file or directory [INFO]
------------------------------------------------------------

使用Windows操作系统时,我是从https://cocalc.com/在线控制台创建.sh文件的。

我还压缩了文件并使用EBS控制台进行部署,以避免在git add / commit期间转换我的文件。

.ebextension内容中的我的配置文件是:

    container_commands:   
        01_sh_executable:
            command: "chmod +x .platform/hooks/predeploy/01_execute.sh"

我的01_execute.sh文件内容为:

#!/bin/bash

source /var/app/venv/*/bin/activate
cd /var/app/staging

python manage.py makemigrations
python manage.py migrate
python manage.py createsu
python manage.py collectstatic --noinp

选择的平台是在64位Amazon Linux 2上运行的Python 3.7。我还注意到,当我运行eb ssh并键入ls时,它将返回空白。 Linux不是我的强项之一。

我们将不胜感激任何帮助。

解决方法

此答案适用于使用 windows 将文件部署到弹性 beantalk 的用户。

我在花了 6 个小时的宝贵时间后找到了此信息。可能没有在官方文档中的任何地方记录

根据此链接“https://forums.aws.amazon.com/thread.jspa?threadID=321653”

psss:最重要的是文件以 LF 行分隔符保存。 CRLF 使“找不到文件或目录”

所以我使用 Visual Studio Code 将 .platform/hooks/postdeploy 中的文件的 CRLF 转换为 LF

在 VS Code 的屏幕右下角有一个小按钮 显示“LF”或“CRLF”:单击该按钮并将其更改为您的 偏好。

我希望这会对 Windows 用户有所帮助!

,

来自docs:

Amazon Linux AMI平台版本(在Amazon Linux 2之前)不支持平台挂钩。

对于 Amazon Linux 2 ,有一种新的挂钩机制,如here所述。

Cython:“严重错误:numpy / arrayobject.h:没有此类文件或目录”

Cython:“严重错误:numpy / arrayobject.h:没有此类文件或目录”

我试图加快答案在这里使用用Cython。我尝试编译代码(在完成此处cygwinccompiler.py介绍的hack之后),但出现错误。谁能告诉我我的代码是否有问题,或者Cython有点神秘?fatal error:numpy/arrayobject.h: No such file ordirectory...compilation terminated

下面是我的代码。

import numpy as np
import scipy as sp
cimport numpy as np
cimport cython

cdef inline np.ndarray[np.int,ndim=1] fbincount(np.ndarray[np.int_t,ndim=1] x):
    cdef int m = np.amax(x)+1
    cdef int n = x.size
    cdef unsigned int i
    cdef np.ndarray[np.int_t,ndim=1] c = np.zeros(m,dtype=np.int)

    for i in xrange(n):
        c[<unsigned int>x[i]] += 1

    return c

cdef packed struct Point:
    np.float64_t f0,f1

@cython.boundscheck(False)
def sparsemaker(np.ndarray[np.float_t,ndim=2] X not None,np.ndarray[np.float_t,ndim=2] Y not None,ndim=2] Z not None):

    cdef np.ndarray[np.float64_t,ndim=1] counts,factor
    cdef np.ndarray[np.int_t,ndim=1] row,col,repeats
    cdef np.ndarray[Point] indices

    cdef int x_,y_

    _,row = np.unique(X,return_inverse=True); x_ = _.size
    _,col = np.unique(Y,return_inverse=True); y_ = _.size
    indices = np.rec.fromarrays([row,col])
    _,repeats = np.unique(indices,return_inverse=True)
    counts = 1. / fbincount(repeats)
    Z.flat *= counts.take(repeats)

    return sp.sparse.csr_matrix((Z.flat,(row,col)),shape=(x_,y_)).toarray()

django -supervisorctl总是报告错误:ERROR(没有此类文件)

django -supervisorctl总是报告错误:ERROR(没有此类文件)

我用uwsgi,supervisor和Nginx部署django项目.
但是我已经在/etc/supervisord.conf中像上面一样添加了程序.

[program:JZAssist]
command=-E uwsgi --ini /home/work/xxxx/uwsgi.ini
directory=/home/work/xxxx
startsecs=0
stopwaitsecs=0
autostart=true
autorestart=true

我的uwsgi.ini内容是:

[uwsgi] 
socket = :8000 
chdir = /home/work/xxxx 
module = xxxx.wsgi 
master = true 
processes = 4 
vacuum = true 

xxxx是我的项目名称.

我在cmd中运行supervisorctl -c /etc/supervisord.conf重新启动.
它显示

xxxx: ERROR (no such file)

/tmp/supervisord.log部分内容:

2017-02-24 23:31:41,433 INFO gave up: JZAssist entered FATAL state,too many start retries too quickly
2017-02-24 23:52:29,940 WARN Failed to clean up '/tmp/JZAssist-stderr---supervisor-goPZyS.log'
2017-02-24 23:52:29,940 WARN Failed to clean up '/tmp/JZAssist-stdout---supervisor-WtfJcp.log'
2017-02-24 23:52:57,535 WARN Failed to clean up '/tmp/JZAssist-stderr---supervisor-goPZyS.log'
2017-02-24 23:52:57,535 WARN Failed to clean up '/tmp/JZAssist-stdout---supervisor-WtfJcp.log'
2017-02-24 23:52:57,541 INFO RPC interface 'supervisor' initialized
2017-02-24 23:52:57,541 CRIT Server 'unix_http_server' running without any HTTP authentication checking
2017-02-24 23:52:57,542 INFO daemonizing the supervisord process
2017-02-24 23:52:57,543 CRIT Could not write pidfile /tmp/supervisord.pid
2017-02-24 23:52:58,544 INFO spawnerr: can't find command '-E'
2017-02-24 23:52:59,546 INFO spawnerr: can't find command '-E'
2017-02-25 00:46:59,234 WARN Failed to clean up '/tmp/JZAssist-stderr---supervisor-goPZyS.log'
2017-02-25 00:46:59,234 WARN Failed to clean up '/tmp/JZAssist-stdout---supervisor-WtfJcp.log'

我不知道为什么它将报告这样的错误.我可以使用runserver.d运行我的django项目,那么缺少什么文件?

最佳答案
在您的command =行上,您已指定该程序以-E运行,而主管找不到该程序来执行.

为作业创建文件时,命令行应作为shell命令可执行,并且不应依赖内部命令来执行给定的shell.例如,我遇到了一个以以下内容开头的问题:

源/ path / to / python / virtual / environment / bin / activate&& …

但源代码是内置的bash.我需要将其更改为:

bash -c’source / path / to / python / virtual / environment / bin / activate&& …

这样,主管可以找到并运行的可执行文件是bash.

就您而言,看来uwsgi应该是command =之后的第一件事.

您提到您在运行sudo时使用-E标志来保留环境变量,但是主管不需要sudo

Heroku和Django:“ OSError:无此类文件或目录:'/ app / {myappname} / static'”

Heroku和Django:“ OSError:无此类文件或目录:'/ app / {myappname} / static'”

我在Heroku上有一个Django应用。我在使用静态文件时遇到了一些问题(它们正在一个Heroku环境中加载,但没有在另一个环境中加载),因此我尝试了这里推荐的debug命令。

$ heroku run python manage.py collectstatic --noinputRunning `python manage.py collectstatic --noinput` attached to terminal... up, run.8771OSError: [Errno 2] No such file or directory: ''/app/{myappname}/static''

这是我的settings.py,与Heroku建议的一样:

import osimport os.pathBASE_DIR = os.path.dirname(os.path.abspath(__file__))STATIC_ROOT = ''staticfiles''STATIC_URL = ''/static/''STATICFILES_DIRS = (    os.path.join(BASE_DIR, ''static''),)

无论我在Git存储库的根目录级别上是否实际上有一个目录“ static”(两种方式都对其进行了测试),都会收到错误消息。

有任何想法吗?

答案1

小编典典

它正在寻找一个名为“ static”的文件夹,该文件夹位于settings.py旁边,即在项目文件夹中,而不是在git repo的根目录下。

git root/git root/{app name}git root/{app name}/settings.pygit root/{app name}/static/         <- this is what you''re missing

请注意,git不会跟踪空文件夹,因此,如果它为空,则必须在其中放置一个空白文件。或者,删除STATICFILES_DIRS设置,直到需要它为止。

今天关于OSError:[Errno 2]在Django中使用python子进程时,没有此类文件或目录python子进程没有连接怎么办的分享就到这里,希望大家有所收获,若想了解更多关于/.platform/hooks/':将Django App部署到AWS Elastic Beanstalk时没有此类文件或目录、Cython:“严重错误:numpy / arrayobject.h:没有此类文件或目录”、django -supervisorctl总是报告错误:ERROR(没有此类文件)、Heroku和Django:“ OSError:无此类文件或目录:'/ app / {myappname} / static'”等相关知识,可以在本站进行查询。

本文标签: