2014-07-09 86 views
0

因此出於某種原因導致此錯誤([Errno 10013]嘗試以訪問權限禁止的方式訪問套接字),不斷髮生。當我嘗試在Django中使用註冊時。我正在使用django 1.65的windows 7和pycharm IDE。我已經嘗試了不同的端口來運行服務器(8001 & 8008),並且還在windows防火牆和kasperesky防火牆中爲python.exe和pycharm添加權限。任何建議。Django註冊[Errno 10013]錯誤

Environment: 


Request Method: POST 
Request URL: http://127.0.0.1:8001/accounts/register/ 

Django Version: 1.6.5 
Python Version: 2.7.8 
Installed Applications: 
('django.contrib.admin', 
'django.contrib.auth', 
'django.contrib.contenttypes', 
'django.contrib.sessions', 
'django.contrib.messages', 
'django.contrib.staticfiles', 
'profiles', 
'south', 
'registration', 
'PIL', 
'stripe') 
Installed Middleware: 
('django.contrib.sessions.middleware.SessionMiddleware', 
'django.middleware.common.CommonMiddleware', 
'django.middleware.csrf.CsrfViewMiddleware', 
'django.contrib.auth.middleware.AuthenticationMiddleware', 
'django.contrib.messages.middleware.MessageMiddleware', 
'django.middleware.clickjacking.XFrameOptionsMiddleware') 


Traceback: 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\django\core\handlers\base.py" in get_response 
    112.      response = wrapped_callback(request, *callback_args, **callback_kwargs) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\django\views\generic\base.py" in view 
    69.    return self.dispatch(request, *args, **kwargs) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\registration\views.py" in dispatch 
    79.   return super(RegistrationView, self).dispatch(request, *args, **kwargs) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\django\views\generic\base.py" in dispatch 
    87.   return handler(request, *args, **kwargs) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\registration\views.py" in post 
    35.    return self.form_valid(request, form) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\registration\views.py" in form_valid 
    82.   new_user = self.register(request, **form.cleaned_data) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\registration\backends\default\views.py" in register 
    80.                  password, site) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\django\db\transaction.py" in inner 
    431.     return func(*args, **kwargs) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\registration\models.py" in create_inactive_user 
    91.    registration_profile.send_activation_email(site) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\registration\models.py" in send_activation_email 
    270.   self.user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\django\contrib\auth\models.py" in email_user 
    413.   send_mail(subject, message, from_email, [self.email]) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\django\core\mail\__init__.py" in send_mail 
    50.       connection=connection).send() 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\django\core\mail\message.py" in send 
    274.   return self.get_connection(fail_silently).send_messages([self]) 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\django\core\mail\backends\smtp.py" in send_messages 
    87.    new_conn_created = self.open() 
File "C:\Users\jasan\Virtual_enviornments\virtual_env_matchmaker\lib\site-packages\django\core\mail\backends\smtp.py" in open 
    48.           local_hostname=DNS_NAME.get_fqdn()) 
File "C:\Python27\Lib\smtplib.py" in __init__ 
    251.    (code, msg) = self.connect(host, port) 
File "C:\Python27\Lib\smtplib.py" in connect 
    311.   self.sock = self._get_socket(host, port, self.timeout) 
File "C:\Python27\Lib\smtplib.py" in _get_socket 
    286.   return socket.create_connection((host, port), timeout) 
File "C:\Python27\Lib\socket.py" in create_connection 
    571.   raise err 

Exception Type: error at /accounts/register/ 
Exception Value: [Errno 10013] An attempt was made to access a socket in a way forbidden by its access permissions 
+0

看起來它試圖發送一些電子郵件時與SMTP協議有關。檢查您的設置。 – Stan

+0

我必須爲gmail smtp定義EMAIL_PORT = 587。在此之後,它修復了這個問題 – jasan

回答

1

該問題與您的電子郵件服務器設置有關。相反,找出解決什麼的,只是在settings.py設置你的EMAIL_BACKEND以下幾點:

if DEBUG: 
    EMAIL_BACKEND = 'django.core.mail.backends.console.EmailBackend' 

這樣,Django在發送的任何電子郵件會在控制檯,而不是試圖交貨顯示。然後您可以繼續開發您的應用程序。

如果您正在開發電子郵件,那麼在控制檯上打印電子郵件是件好事,但如果您的應用程序正在發送大量電子郵件,則會很頭疼。

更好的解決方案是安裝mailcatcher。此應用程序將創建一個本地郵件服務器進行測試,並作爲獎勵,爲您提供一個Web界面,您可以查看電子郵件由服務器發送:

mailcatcher

這是一個Ruby應用程序,併爲你在Windows上,我建議使用rubyinstaller來幫助安裝寶石。

該網站還介紹瞭如何配置Django的:

if DEBUG: 
    EMAIL_HOST = '127.0.0.1' 
    EMAIL_HOST_USER = '' 
    EMAIL_HOST_PASSWORD = '' 
    EMAIL_PORT = 1025 
    EMAIL_USE_TLS = False 
+0

這絕對讓我通過我收到的錯誤,並將電子郵件發送到控制檯,但任何關於什麼即時通訊工具在設置我的smtp設置錯誤的建議: EMAIL_HOST ='smtp.gmail。 com' EMAIL_HOST_USER ='gmal user name' EMAIL_HOST_PASSWORD ='gmail password' EMAIL_USE_TLS = True – jasan

+0

想通了,我不得不定義EMAIL_PORT = 587讓gmail開始工作。多謝你們。 – jasan

0

這有什麼,與你的Web服務器的端口,這是做的主機和端口smtplib試圖打開才能發送一封電郵。

這些由settings.EMAIL_HOSTsettings.EMAIL_PORT控制。還有其他設置,請參閱documentation以瞭解如何正確設置電子郵件的詳細信息。