执行mkvirtualenv myproject命令出现“DNS server not authoritative for the zone”错误求助
这个DNS错误确实有点出乎意料——毕竟mkvirtualenv主要是本地管理虚拟环境的工具,但结合你的Windows 7 + Python 3.6环境,我梳理了几个可能的根源和对应的解决步骤:
检查virtualenvwrapper与pip源配置
mkvirtualenv是virtualenvwrapper-win(Windows专属包)提供的命令,部分版本的工具在创建环境时会尝试检查包源或工具版本,可能触发DNS查询。- 先直接用基础的
virtualenv命令测试:执行virtualenv my_test_env,如果能正常创建,说明问题出在virtualenvwrapper的配置上; - 检查pip的源设置:运行
pip config list,如果看到异常的源地址,临时切换到国内稳定源:pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple,再重试mkvirtualenv。
- 先直接用基础的
刷新DNS缓存并调整网络DNS设置
Windows 7的DNS缓存可能出现异常,或者当前网络的DNS服务器无法解析某些隐性请求:- 管理员CMD下执行
ipconfig /flushdns清空DNS缓存; - 尝试切换公共DNS:打开网络连接属性 → 选择IPv4协议 → 手动设置DNS为
8.8.8.8和8.8.4.4,重启CMD后再执行命令。
- 管理员CMD下执行
重装virtualenvwrapper-win并检查环境变量
可能是virtualenvwrapper-win安装不完整或环境变量配置有误:- 先卸载旧版本:
pip uninstall virtualenvwrapper-win; - 重新安装:
pip install virtualenvwrapper-win; - 确认Python的
Scripts目录(比如C:\Python36\Scripts)已添加到系统环境变量PATH中,这样系统才能找到mkvirtualenv命令。
- 先卸载旧版本:
排查防火墙/杀毒软件的拦截
即使是管理员身份,某些杀毒软件或防火墙可能会拦截mkvirtualenv的隐性网络请求,导致DNS解析报错:- 临时关闭杀毒软件和系统防火墙,再尝试创建虚拟环境;
- 如果成功,将Python的
Scripts目录下的mkvirtualenv.bat等相关脚本添加到杀毒软件的白名单中。
内容的提问来源于stack exchange,提问作者Circadian
相关产品推荐
相关产品推荐

