在生产服务器上导入数据时出错 - 本地工作正常

时间:2015-11-05 06:52:09

标签: python django

我尝试导入此CSV文件。它完全适用于我在django上的本地设置。但是 - 它不会导入我的实际服务器/生产版本。

我在服务器上使用SQLite(本地)和Postgres。但我没有看到任何会影响它的设置。有什么建议吗?

我的导入文件:

import sys, os
import django

sys.path.append('/srv/apps/stashdDB/code')
os.environ['DJANGO_SETTINGS_MODULE'] = 'stashdDB.settings'

django.setup()

import stashd.models as m




import csv

l = list(csv.reader(open('test_data.csv', encoding='utf-8', errors='ignore')))

Gender_CHOICES = {
    'Male': 1,
    'Female': 2,
    'Unisex': 3,
}

Stock_CHOICES = {
    'in stock': 1,
    'low stock': 2,
    'out of stock': 3,
    'discountinued': 4
}

for i in l[1:]:
        cat = m.Category.objects.get_or_create(category_name = i[4])[0]
        prod = m.Product(
            name = i[0],
            link = i[1],
            description = i[6],
            brand = i[7],
            gender = Gender_CHOICES[i[8]] if i[8] in Gender_CHOICES else 3,
            store = m.Store.objects.get_or_create(store_name = i[2])[0]
            )
        prod.save()
        var = m.Variation(
            product = prod,
            variation = "default"
            )
        var.save()
        img = m.Image(
            variation = var,
            image = i[5]
            )
        img.save()
        size = m.Size(
            variation = var
            )
        size.save()
        price = m.Price(
            variation = var,
            price = float(i[3])
            )
        price.save()
        stock = m.Stock(
            size = size,
            stock = Stock_CHOICES[i[9]] if i[9] in Stock_CHOICES else 4
            )
        stock.save()
        prod.category.add(cat)

错误:

Traceback (most recent call last):
  File "update_fromcsv.py", line 18, in <module>
    l = list(csv.reader(open('test_data.csv', encoding='utf-8', errors='ignore')))
TypeError: 'errors' is an invalid keyword argument for this function

1 个答案:

答案 0 :(得分:1)

您在本地和服务器上使用不同版本的Python。

在本地,您可能正在使用Python 3,因为Python 3.4 knows errors的{​​{1}}参数

open()

在服务器上,您可能运行Python 2,因为在in Python 2.7open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 参数不存在

errors

这就是错误消息抱怨'错误'为“无效”的原因。