如何在 linux ubuntu 18.04 python 3.7 上使用 pip 安装 venv

How to install venv with pip on linux ubuntu 18.04 python 3.7

我尝试用 pip 安装 venv,它给了我以下错误信息:

这是命令:

$ pip install venv

和错误:

Collecting venv
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 215, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 353, in run
    wb.build(autobuilding=True)
  File "/usr/lib/python2.7/dist-packages/pip/wheel.py", line 749, in build
    self.requirement_set.prepare_files(self.finder)
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 380, in prepare_files
    ignore_dependencies=self.ignore_dependencies))
  File "/usr/lib/python2.7/dist-packages/pip/req/req_set.py", line 554, in _prepare_file
    require_hashes
  File "/usr/lib/python2.7/dist-packages/pip/req/req_install.py", line 278, in populate_link
    self.link = finder.find_requirement(self, upgrade)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 465, in find_requirement
    all_candidates = self.find_all_candidates(req.name)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 423, in find_all_candidates
    for page in self._get_pages(url_locations, project_name):
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 568, in _get_pages
    page = self._get_page(location)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 683, in _get_page
    return HTMLPage.get_page(link, session=self.session)
  File "/usr/lib/python2.7/dist-packages/pip/index.py", line 795, in get_page
    resp.raise_for_status()
  File "/usr/share/python-wheels/requests-2.18.4-py2.py3-none-any.whl/requests/models.py", line 935, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
HTTPError: 404 Client Error: Not Found for url: https://pypi.org/simple/venv/

os: linux ubuntu 18.04 python3.7

谢谢!

在 Ubuntu 18.04 上,python 可执行文件是 bound by default to python2.7 (Which is now EOL);所以当你这样做时:

pip install venv

您正在尝试在 Python2.7 上安装 venv,它仅与 python3.3+ 兼容(见下文),这就是您收到这些错误的原因。

附带说明,您不需要在 python3.3+ 上安装 venv,因为默认情况下已包含它,请参阅 venv documentation,但发行版维护者可能会发布 Python 没有这个模块,所以你必须使用你的包管理器安装它,在这种情况下:

sudo apt install python3-venv -y 

通过执行以下命令创建虚拟环境:

python3 -m venv /path/to/new/virtual/environment

对于以前版本的Python(在你的情况下是2.7),你可以使用virtualenv

pip install virtualenv

以及创作:

virtualenv -p /usr/bin/python2.7 <path/to/new/virtualenv/>

请注意,-p 标志不是强制性的,它只是为了确保您调用正确的 Python 版本,以防您同时使用 Python 2 和 Python 3.