使用Python3.6创建virtualenv时出现AttributeError问题求助
解决virtualenv指定Python3.6时出现
AttributeError: module 'enum' has no attribute 'IntFlag'的问题 这个错误我之前折腾Python3.6虚拟环境时也碰到过,本质是Python3.6的enum模块被干扰,或者virtualenv版本不兼容导致的,下面给你几个亲测有效的解决步骤:
1. 先升级你的virtualenv版本
旧版本的virtualenv对Python3.6的支持不完善,这是最常见的原因。先检查当前版本:
virtualenv --version
如果版本低于15.1.0,赶紧用这条命令升级(如果你的系统默认是Python2,建议加pip3确保装到Python3环境):
pip3 install --upgrade virtualenv
2. 排查enum模块的冲突问题
有时候系统里存在一个非标准库的enum.py文件,会让Python3.6导入错误的模块。你可以用这条命令验证:
python3.6 -c "import enum; print(enum.__file__)"
正常输出应该是Python3.6标准库的路径,比如:
/usr/local/lib/python3.6/enum/init.py
如果输出是其他路径(比如当前目录的enum.py),把这个文件重命名或者删除,避免干扰标准库。
3. 改用Python3.6自带的venv模块(推荐)
Python3.3+自带了官方的虚拟环境工具venv,不需要额外装virtualenv,兼容性拉满。直接用这条命令创建环境:
python3.6 -m venv <env name>
创建完激活环境后,你可以用python --version确认是Python3.6,绝对不会出问题。
4. 检查Python3.6的完整性
如果上面的方法都没用,可能是你的Python3.6安装不完整,标准库的enum模块缺失。可以先测试:
python3.6 -c "from enum import IntFlag; print('OK')"
如果这条命令报错,说明Python3.6的安装有问题,建议重新下载安装包,完整安装一次Python3.6。
内容的提问来源于stack exchange,提问作者asheets
相关产品推荐
相关产品推荐

