web-dev-qa-db-ja.com

OSError:[Errno 18]無効なクロスデバイスリンク

私はDjango 1.6.5およびpython 2.7で作業しています。アプリにインポート機能があり、エラーが発生します。

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',
},
27
mark

os.renameは、ソースと宛先が同じファイルシステム上にある場合にのみ機能します。代わりにshutil.moveを使用する必要があります。

45
butesa

名前の変更は、ソース名とターゲット名が同じファイルシステム上にある場合にのみ機能すると思います。おそらく異なるマウントがあります。そうしないと、そのエラーが発生します。コピーと削除で同じ効果を実装できます。

それが役に立てば幸い

2
Tiago Almeida