【问题标题】:python3 venv sees packages from python2python3 venv 看到来自 python2 的包
【发布时间】:2019-02-10 13:18:09
【问题描述】:

我同时安装了 Python2.7 和 Python 3.7。当我在 Python3.7 项目中创建 venv 时,它“看到”了 Python2.7 的全局包,即:我正在运行一个烧瓶项目而不安装任何东西(甚至烧瓶)并且它可以工作,因为所有必需的包都存在在 2.7 安装中。

当我在 venv 中运行 python -v 时,我得到 3.7,但是当我运行 flask --version 时,我得到:

Flask 0.12.2
Python 2.7.14 (v2.7.14:84471935ed, Sep 16 2017, 20:25:58) [MSC v.1500 64 bit (AMD64)]

编辑:我发现我的 PATH 中有 c:\Python27,如果我删除它,一切都会按预期工作。但其他事情对我来说很糟糕。有没有办法仅在激活虚拟环境时从路径中删除 Python27?

编辑:这是我的pyvenv.cfg

home = c:\Python37
include-system-site-packages = false
version = 3.7.2

如何将 venv 与本地环境的其他部分完全分开?

谢谢

【问题讨论】:

    标签: python python-3.x python-venv


    【解决方案1】:

    虚拟环境的整体理念是它是一个全新的工作环境,没有安装任何 pip 库。
    如果您激活您的虚拟环境,您应该不会看到任何已安装的软件包,除非您明确安装它们。
    几点建议:
    1.尝试从python2.7全局包中卸载flask,看看会发生什么。
    2.从python3.7重复相同的操作。
    3. 确保 python2.7 和 python3.7 有不同的别名,并使用正确的别名来创建 vend 。

    【讨论】:

    • 感谢您的及时回复,我对别名概念不熟悉,您能指点我一些文档吗?另外,我从 Python2.7 中卸载了烧瓶,现在在两种环境中都无法识别它,正如预期的那样
    • 我的意思是说你应该检查你是否使用正确版本的python二进制文件来创建venv。例如$ which python /usr/bin/python $ which python3.6 /Library/Frameworks/Python.framework/Versions/3.6/bin/python3.6
    • 是的,我正在使用Python3.7创建venv。
    • 那么你不应该在venv中看到flask
    • 您可以在此处查找别名,例如stackoverflow.com/questions/35435517/… 在你的 3.7 venv 上安装烧瓶也解决了@MeLight 的问题?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-24
    • 1970-01-01
    相关资源
    最近更新 更多