今天我从 apt-get 安装了 python 3.7 来尝试新的 dataclasses 模块。我单独安装了它,因为 python3.6 无法升级到 3.7。
当我输入:
python3.7 --version
时,它会给我:>>> Python 3.7.0a2
作为我当前的版本。
问题是我似乎无法导入数据类。
我的进口声明是:
from dataclasses import dataclass
按照指示这里
这是它给我的错误消息:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'dataclasses'
Error in sys.excepthook:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/apport_python_hook.py", line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File "/usr/lib/python3/dist-packages/apport/__init__.py", line 5, in <module>
from apport.report import Report
File "/usr/lib/python3/dist-packages/apport/report.py", line 30, in <module>
import apport.fileutils
File "/usr/lib/python3/dist-packages/apport/fileutils.py", line 23, in <module>
from apport.packaging_impl import impl as packaging
File "/usr/lib/python3/dist-packages/apport/packaging_impl.py", line 24, in <module>
import apt
File "/usr/lib/python3/dist-packages/apt/__init__.py", line 23, in <module>
import apt_pkg
ModuleNotFoundError: No module named 'apt_pkg'
Original exception was:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'dataclasses'
我什至尝试使用 pip3 安装数据类模块:
pip3 install dataclasses
。但不确定是否有必要。
对可能出现的问题有什么建议吗?
[编辑]刚刚用 python3.6 控制台尝试过,它工作得很好..很奇怪。
按照@wim的建议
python3.7 -m venv venv_dir
此命令将:
-m
标志告诉解释器将下一个参数作为脚本运行venv
是一个模块,并且由于 -m
标志,它将作为脚本运行venv_dir
作为参数提供给venv
模块,
该模块将用于在一旦运行此命令,您将拥有一个很好的沙箱,用于处理/测试数据类模块。
source venv_dir/bin/activate
。此命令将运行 venv_dir/bin/activate
处的脚本,为您设置必要的环境变量和其他内容deactivate
我遇到这个问题是因为我的文件名是
ast.py
,这显然与某些内部模块冲突。重命名文件后,它工作正常。