解决:django 项目启动试报错 OSError: [WinError 87] 参数错误,或“” 不是内部命令与外部命令。

问题出现

之前正在学习Django框架,准备自己写个网站练习下。刚刚写了部分页面之后,电脑的python环境突然崩掉了,现在也不知道原因,所以我就重新安装的python和Djando等一系列包。之后启动Django发现启动报错。
报错一:
Djando启动报错
报错二:
报错二
错误二是我在cmd中模拟出来的,之前的图忘记截了,也是这样 不是内部或外部命令的错。‘sss’实际报错中为乱码。

分析及解决

我之前是可运行的,所以我认为是新装的python环境配置问题。所以重新修改了电脑环境,发现没有作用。
查看错误信息:

Traceback (most recent call last):
  File ".\manage.py", line 22, in <module>
    main()
  File ".\manage.py", line 18, in main
    execute_from_command_line(sys.argv)
  File "F:\Python\DLLs\lib\site-packages\django\core\management\__init__.py", line 422, in execute_from_command_line
    utility.execute()
  File "F:\Python\DLLs\lib\site-packages\django\core\management\__init__.py", line 415, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "F:\Python\DLLs\lib\site-packages\django\core\management\base.py", line 355, in run_from_argv
    self.execute(*args, **cmd_options)
  File "F:\Python\DLLs\lib\site-packages\django\core\management\commands\runserver.py", line 61, in execute
    super().execute(*args, **options)
  File "F:\Python\DLLs\lib\site-packages\django\core\management\base.py", line 399, in execute
    output = self.handle(*args, **options)
  File "F:\Python\DLLs\lib\site-packages\django\core\management\commands\runserver.py", line 96, in handle
    self.run(**options)
  File "F:\Python\DLLs\lib\site-packages\django\core\management\commands\runserver.py", line 103, in run
    autoreload.run_with_reloader(self.inner_run, **options)
  File "F:\Python\DLLs\lib\site-packages\django\utils\autoreload.py", line 647, in run_with_reloader
    exit_code = restart_with_reloader()
  File "F:\Python\DLLs\lib\site-packages\django\utils\autoreload.py", line 266, in restart_with_reloader
    p = subprocess.run(args, env=new_environ, close_fds=False)
  File "F:\Python\Lib\subprocess.py", line 423, in run
    with Popen(*popenargs, **kwargs) as process:
  File "F:\Python\Lib\subprocess.py", line 729, in __init__
    restore_signals, start_new_session)
  File "F:\Python\Lib\subprocess.py", line 1017, in _execute_child
    startupinfo)
OSError: [WinError 87] 参数错误。

按照报错信息逐个查看源代码,发现源文件autoreload.py中有获取python解释器路径拼接参数的语句
源代码
打印输出args参数值到控制台看下。
打印输出
结果:
结果
结果是空,没有拿到python解释器的执行文件。
我百度了下这个函数sys.executable为空的原因,暂时没有找到。
于是为了能够暂时使用我修改了源代码,增加了sys.executable=‘本地python解释器路径’
源代码增加本地路径
然后启动Django
启动Django
前台:
前台启动
这样只能暂时解决,这个问题归根结底还是我python环境问题,之后我真正完全解决,在补充。

最后

本来前两天就分析源码来着,不过看一会就没有耐心了,只到拖了两天之后才耐着心看下去。解决问题(虽然还未完全解决),还是有些成就感的。希望自己以后越来越好,大家也越来越好。把这个发出来希望给也遇到这类问题的朋友一些参考。
感谢阅读

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值