Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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中的文件写入一直存在IOError_Django_File Writing_Celery Task - Fatal编程技术网

Django中的文件写入一直存在IOError

Django中的文件写入一直存在IOError,django,file-writing,celery-task,Django,File Writing,Celery Task,我正在本地运行我的应用程序,在从数据库创建文件的过程中,我当前有一个IOR错误。我使用Django 1.10、MongoDB作为我的数据库,芹菜4.0.2作为我的后台任务。问题出现在tasks.py中,因为我在那里访问数据库,然后将其存储在django子文件夹“analysis_samples”中 以下是回溯: [2017-04-15 15:31:08,798: ERROR/PoolWorker-2] Task tasks.process_sample_input[0619194e-4300-4

我正在本地运行我的应用程序,在从数据库创建文件的过程中,我当前有一个IOR错误。我使用Django 1.10、MongoDB作为我的数据库,芹菜4.0.2作为我的后台任务。问题出现在tasks.py中,因为我在那里访问数据库,然后将其存储在django子文件夹“analysis_samples”中

以下是回溯:

[2017-04-15 15:31:08,798: ERROR/PoolWorker-2] Task tasks.process_sample_input[0619194e-4300-4a1d-91b0-20766e048c4a] raised unexpected: IOError(2, 'No such file or directory')
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/celery/app/trace.py", line 367, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/celery/app/trace.py", line 622, in __protected_call__
    return self.run(*args, **kwargs)
  File "/home/user/django_apps/myapp/analysis/tasks.py", line 218, in process_sample_input
    with open(sample_file_path, "w+") as f:
IOError: [Errno 2] No such file or directory: u'/home/user/django_apps/myapp/myapp/analysis_samples/58f1cc3c45015d127c3d68c1'
下面是tasks.py的片段:

from django.core.files import File
sys.path.append(settings.ANALYSIS_SAMPLES)
import base64
import os, sys

@shared_task(name='tasks.process_sample_input')
def process_sample_input(instance_id):
    instance = Sample.objects.get(pk=instance_id)
    #many code here..
    try:
        conn=pymongo.MongoClient(settings.MONGO_HOST, settings.MONGO_PORT)
        db = conn.thugfs #connect to GridFS db of thug
        thugfs_db = GridFS(db)
    except pymongo.errors.ConnectionFailure, e:
        logger.error("Could not connect to ThugFS MongoDB: %s" % e)

    sample_file_folder = settings.ANALYSIS_SAMPLES
    for sample_fs_id in sample_fs_ids:
        sample_file = thugfs_db.get(ObjectId(sample_fs_id)).read()
        sample_file = base64.b64decode(sample_file) #decode file from database
        sample_file_path = os.path.join(sample_file_folder, sample_fs_id)
        with open(sample_file_path, "w+") as f:
            fileOut = File(f)
            fileOut.write(sample_file)
settings.py:

ANALYSIS_SAMPLES = os.path.join(BASE_DIR, 'myapp/analysis_samples')

有人能看到导致错误的原因吗?任何帮助都将不胜感激

在错误跟踪中,我注意到包含…/myapp/myapp/…的路径。。。可能实际路径只有1个myapp/文件夹?在这种情况下,更改分析样本设置myapp/myapp是同样可以找到settings.py的文件夹。好的,我会检查是否移除它。谢谢。我已经看到错误了!在tasks.py中,我也有一个子流程,我错放了一个arg——要处理的目标。现在没事了,不再出现了。应该将目标放在args的最后一部分,而不是中间。