2017-02-22 38 views
7

Я работаю с django 1.6.5 и python 2.7. У меня есть функция импорта в моем приложении, и я получаю сообщение об ошибке:OSError: [Errno 18] Неверная ссылка для нескольких устройств

OSError: [Errno 18] Invalid cross-device link 

У меня есть проблемы с этой частью коды:

os.rename(db_temp, settings.DATABASES['bookmat']['NAME']) 

кодом в настройках:

'bookmat': { 
    'ENGINE': 'django.db.backends.sqlite3', 
    'NAME': '/my_projects/book/db/bookmat.sqlite3', 
}, 
+0

Что такое db_temp значение – iklinac

+0

'db_temp = settings.DATABASES [db_temp_name] [«NAME»]' @iklinac – mark

+0

начальное значение db_temp как строка – iklinac

ответ

1

Я думаю переименовать работает только тогда, когда исходные и целевые имена находятся в одной файловой системе. У вас, вероятно, разные подставки. В противном случае вы получите эту ошибку. Вы можете реализовать тот же эффект с копией и удалением.

Надеюсь, что это помогает

13

os.rename работает только тогда, когда источник и пункт назначения находятся на одной и той же файловой системе. Вместо этого вы должны использовать shutil.move.