' WinError 10013'在Windows上运行Django

时间:2017-07-07 19:10:23

标签: python django windows sockets

我遇到这个问题差不多一个月了,我非常感谢你的帮助。在尝试登录我的Django Web App时,我在/accounts/login/遇到了OSError。我能够登录127.0.0.1:8000/admin,但不能登录到/ accounts / login,这会产生错误代码:

OSError at /accounts/login/
[WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions

Request Method: POST
Request URL:    http://127.0.0.1:8000/accounts/login/
Django Version: 1.11.1
Exception Type: OSError
Exception Value:    
[WinError 10013] An attempt was made to access a socket in a way forbidden by its access permissions
Exception Location: C:\Python35-32\lib\socket.py in create_connection, line 702
Python Executable:  C:\Python35-32\myvenv_python3\Scripts\python.exe
Python Version: 3.5.2
Python Path:    
['C:\\Users\\Kaleab\\Desktop\\ecomstore',
 'C:\\Python35-32\\lib\\site-packages\\sqlalchemy-1.1.7-py3.5-win32.egg',
 'C:\\Python27',
 'C:\\Python35-32\\myvenv_python3\\Lib\\site-packages',
 'C:\\Python35-32',
 'C:\\Users\\Kaleab\\Desktop\\ecomstore',
 'C:\\Python35-32\\myvenv_python3\\Scripts\\python35.zip',
 'C:\\Python35-32\\DLLs',
 'C:\\Python35-32\\lib',
 'C:\\Python35-32\\myvenv_python3\\Scripts',
 'C:\\Python35-32\\lib\\site-packages',
 'C:\\Python35-32\\lib\\site-packages\\win32',
 'C:\\Python35-32\\lib\\site-packages\\win32\\lib',
 'C:\\Python35-32\\lib\\site-packages\\Pythonwin']

可能的原因和解决方案

原因:

  1. 套接字访问需要管理权限。 尝试的解决方案:•通过导航到虚拟环境授予管理员对python.exe的访问权限。 •导航到CMD.exe,右键单击,属性,授予管理员权限。

    1. 原因:端口已被其他程序使用。尝试的解决方案:使用TCPView Windows程序检查端口,并看到端口8000未被其他程序使用。

    2. 原因:防火墙和防病毒软件阻止了套接字访问。尝试的解决方案:当我尝试禁用防火墙和防病毒时,我在accounts / login / [WinError 10061]收到另一个错误ConnectionRefusedError。由于目标计算机主动拒绝它,因此无法建立连接。

    3. 原因:Winsock发生故障。尝试解决方案:尝试并成功重置winsock,但这也没有解决它。

8 个答案:

答案 0 :(得分:5)

我将以不同的端口运行服务器作为答案,虽然我无法在stackoverflow建议命令中看到端口8000。使用:python manage.py runserver 8080。

答案 1 :(得分:0)

由于更改端口适用于@Kaleab,问题可能是使用该端口的另一个进程。

我刚发现一个Firefox进程,从端口5000到端口5000都有环回连接(奇怪吗?)。一旦我关闭了Firefox,我就可以在没有错误的情况下启动我的Flask服务器。

要找出使用该端口的进程see here

答案 2 :(得分:0)

更改端口对我有用,我试图运行django服务器。 它不是防火墙问题,只需在命令前面键入端口

python manage.py runserver 7000

答案 3 :(得分:0)

如下运行端口号为8080的命令

python manage.py runserver 8080

答案 4 :(得分:0)

只需重新启动计算机并运行
python manage.py runserver

python manage.py runserver PORT_NUMBER

python manage.py runserver 8000

python manage.py runserver 8080

答案 5 :(得分:0)

可能正在运行另一个正在使用该端口的进程。查找并杀死该进程将使您能够使用8000端口。

答案 6 :(得分:0)

由于防病毒应用程序(Kaspersky),我收到了错误消息。我要做的就是将卡巴斯基manage.py分配给trustworthy。我有一个外国版本,因此trustworthy是直译,也许在英文版本中它的名称也有所不同。

答案 7 :(得分:-1)

我使用不同的端口解决了这个问题:

python manage.py runserver 9999

9999 为我工作