Не удалось импортировать модуль классов данных

Сегодня я установил python 3.7 из apt-get, чтобы опробовать новый модуль 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'

Я даже пытался установить модуль dataclasses с помощью pip3: pip3 install dataclasses, Не уверен, если это необходимо, хотя.

Любое предложение о том, в чем может быть проблема?

[EDIT] Просто попробовал это с консолью python3.6, и она работала нормально.. странно.

1 ответ

По предложению @wim python3.7 -m venv venv_dir

Эта команда будет:

  1. Используйте python3.7 для запуска команды
  2. -m флаг говорит интерпретатору запустить следующий аргумент как скрипт
  3. venv является модулем, и из-за -m пометить, что он будет запущен как скрипт
  4. Наконец, venv_dir дается venv модуль в качестве аргумента, который этот модуль будет использовать для создания каталога виртуальной среды в

Как только эта команда будет запущена, теперь у вас будет хорошая песочница для возни / тестирования модуля dataclasses.

  • Для активации этой виртуальной среды обязательно запустите source venv_dir/bin/activate прежде чем вы начнете. Эта команда запустит скрипт в venv_dir/bin/activate настроить необходимые переменные среды и другие вещи для вас
  • Чтобы деактивировать, просто запустите deactivate после активации
Другие вопросы по тегам