6

Raspbian Buster 默认有 Python3.7。我正在尝试制作 Python3.6 virtualenv。我全新安装了带有桌面的 Raspbian Buster(不是带有“推荐软件”的版本)并且已经安装了sudo apt-get update; sudo apt-get upgrade

  1. 我已经跑去sudo apt-get install python3.6-dev获取 Python 3.6。
  2. 然后我运行pip3 install virtualenvwrapper并将适当的行添加到我的 .bashrc 中。
  3. 当我运行mkvirtualenv --python=/usr/bin/python3.6 venv它给出以下错误
Traceback (most recent call last):
  File "/home/pi/.local/lib/python3.7/site-packages/virtualenv.py", line 24, in <module>
    import distutils.spawn
ModuleNotFoundError: No module named 'distutils.spawn'

我已经搜索过答案,但没有任何帮助。这是我所做的(据我所知)。

  • 我尝试添加export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3.6到我的 .bashrc 并没有帮助。
  • 我尝试python3.6 -m pip install virtualenvwrapper得到另一个 distutils 错误:
    Traceback (most recent call last):
    File "/usr/lib/python3.6/runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
    File "/usr/lib/python3.6/runpy.py", line 85, in _run_code
    exec(code, run_globals)
    File "/usr/lib/python3/dist-packages/pip/__main__.py", line 16, in <module>
    from pip._internal import main as _main  # isort:skip # noqa
    File "/usr/lib/python3/dist-packages/pip/_internal/__init__.py", line 40, in <module>
    from pip._internal.cli.autocompletion import autocomplete
    File "/usr/lib/python3/dist-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
    from pip._internal.cli.main_parser import create_main_parser
    File "/usr/lib/python3/dist-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
    from pip._internal.cli import cmdoptions
    File "/usr/lib/python3/dist-packages/pip/_internal/cli/cmdoptions.py", line 17, in <module>
    from pip._internal.locations import USER_CACHE_DIR, src_prefix
    File "/usr/lib/python3/dist-packages/pip/_internal/locations.py", line 10, in <module>
    from distutils import sysconfig as distutils_sysconfig
    ImportError: cannot import name 'sysconfig'
    
  • 我可以成功,mkvirtualenv venv但当然使用了我不想要的 Python 3.7。
  • 我试过sudo apt-get install python3-distutils --reinstall但似乎只安装了Python3.7版本。没有python3.6-distutils包裹。

任何人都知道如何让这个工作?

4

3 回答 3

14

我在使用 python3.8 和 virtualenv 时遇到了同样的问题。发现没有安装对应版本python的venv。然后我安装它

sudo apt install python3.x-venv

问题已经解决了。试一试,祝你好运!

于 2020-04-07T02:33:58.930 回答
2

我有同样的问题(ModuleNotFoundError: No module named 'distutils.spawn')。问题是我的系统上没有预装 python3 的 PIP。venv 在手动安装后创建没有问题:

sudo apt install python3-pip

于 2020-02-17T22:14:50.410 回答
0

运行命令virtualenv venv --python=python3.x时我遇到了类似的错误下面是对我有用的。

Desktop/yourproject$python --version

Desktop/yourproject$python3.x -m venv yourvenv
于 2020-12-05T12:11:44.687 回答