我正在使用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',
},
答案 0 :(得分:39)
os.rename
才有效。您应该使用shutil.move
代替。
答案 1 :(得分:2)
我认为重命名仅在源名称和目标名称位于同一文件系统上时才有效。你可能有不同的坐骑。否则你会得到那个错误。您可以通过复制和删除实现相同的效果。
希望有所帮助