【问题标题】:Why is virtualenvwrapper creating paths related to python2 instead of python3?为什么 virtualenvwrapper 创建与 python2 而不是 python3 相关的路径?
【发布时间】:2018-02-15 10:55:40
【问题描述】:

我更新了 mkvirtualenv 和 virtualenv 的版本

$ sudo pip install --upgrade virtualenv virtualenvwrapper

因为我这辈子只用过 Python 2,现在想用 Python 3。virtualenvwrapper 有一些问题。

然后我尝试为我的 python3 安装创建一个虚拟环境:

$ mkvirtualenv py3test -p /usr/bin/python3

环境是在~/.virtualenvs/py3test 中创建的。激活后,我想安装我制作的软件包:

(py3test)$ pip install python-cantrips (py3test)$ 点冻结

并且该软件包已正确安装。然后我安装ipython 并运行它:

(py3test)$ pip install ipython (py3test)$ ipython

然后我适当地输入ipython。但后来我...

import cantrips

它会以ImportError 爆炸。然后我检查sys.path。问题就在这里:sys.path 包含如下路径:'/home/myuser/.virtualenvs/py3test/lib/python2.7/site-packages'。我不记得路径是否准确,因为我现在不在这样的计算机中。但我可以肯定一件事:环境是用python3创建的(我的virtualenv中的目录不是python2.7而是python3.5)。

那么:为什么 virtualenv 为 python3 创建了一个环境,却给我添加了路径,就好像它是一个 python2.7 环境一样?

【问题讨论】:

  • 您是否尝试使用pip3?如果你想要 Python3 的 env 运行这个python3 -m venv ENV
  • 当你刚刚运行python 时会显示哪个版本?
  • @KlausD。我使用的默认 python 版本是 Python 2.7。我应该在运行 mkvirtualenv 之前更改默认的 python 选项吗?如果是这样,virtualenv 中的 -p 选项的目的是什么?

标签: python virtualenv virtualenvwrapper


【解决方案1】:

找到了!

virtualenvvirtualenvwrapper 没有问题。问题在于ipython。实际上,ipython 没有特别的问题,但在 virtualenv 中可以访问脚本的方式。

在全球范围内,我安装了 ipython(与全球 python27 一起使用)。当我在我的本地 python3 环境中安装 ipython 时,(shell)路径没有更新,直到我再次以某种方式刷新环境(例如,停用,再次激活)。所以当我再次尝试时,ipython 是合适的(我的环境中的本地ipython 3.5),并且生成的路径是预期的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-28
    • 1970-01-01
    • 2019-06-04
    • 2018-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多