2014-03-29 133 views
0

我正在使用python(2.7.5)和django(1.6.1)將文件保存在一個文件夾中。它完全可以在linux上運行。但是我在windows上執行這個項目獲得跟隨錯誤。Python:Errno 22無效參數

[Errno 22] Invalid argument 
Request Method: POST 
Request URL: http://127.0.0.1:8000/save_partner 
Django Version: 1.6.1 
Exception Type: OSError 
Exception Value:  
[Errno 22] Invalid argument 
Exception Location: C:\Python27\lib\site-packages\django\core\files\storage.py in _save, line 199 
Python Executable: C:\Python27\python.exe 
Python Version: 2.7.6 
Python Path:  
['C:\\Projects\\customer', 
'C:\\Python27\\lib\\site-packages\\distribute-0.6.49-py2.7.egg', 
'C:\\Python27\\lib\\site-packages\\pymongo-2.6.3-py2.7-win-amd64.egg', 
'C:\\Windows\\system32\\python27.zip', 
'C:\\Python27\\DLLs', 
'C:\\Python27\\lib', 
'C:\\Python27\\lib\\plat-win', 
'C:\\Python27\\lib\\lib-tk', 
'C:\\Python27', 
'C:\\Python27\\lib\\site-packages', 
'C:\\Python27\\lib\\site-packages\\setuptools-0.6c11-py2.7.egg-info'] 
Server time: Sat, 29 Mar 2014 12:53:35 +0530  

,誤差值在default_storage(最後一行)線

for i in request.FILES.getlist('avtar'): 
    avatarName = i.name 
    filepath='avatars/'+date+'_'+avatarName 
    address = settings.MEDIA_ROOT+filepath 
    path = refine(address) 
    avtar_path=path 
    default_storage.save("%s"%(filepath), ContentFile(i.read())) 

default_storage.save("%s"%(filepath), ContentFile(i.read())) 

顯示默認_storage從Django的

from django.core.files.storage import default_storage 

爲什麼不能在Windows7上使用進口..?

+0

請在錯誤行周圍發佈更多代碼。 – tjati

+0

你的路徑可能是一個無效的Windows文件路徑(檢查你的背/斜槓) –

+0

@ omeinusch,請檢查 – Shiva

回答

1

你是如何填充filepath?很可能您使用Linux文件路徑約定構建它,Linux使用前斜槓(/)作爲路徑分隔符,而Windows使用反斜槓(\)。使用Python的os.path模塊以獨立於平臺的方式制定文件路徑。

#prints spam\egg on Windows and spam/egg on Linux 
print os.path.join('spam', 'egg') 
+0

,謝謝老大.. – Shiva

相關問題