虚拟环境中的Python site.getsitepackages()显示了两条路径,我可以删除非虚拟环境中的一条吗?

虚拟环境中的Python site.getsitepackages()显示了两条路径,我可以删除非虚拟环境中的一条吗?,python,virtualenv,Python,Virtualenv,与其他一些帖子一样,我遇到了一个问题,即在虚拟环境中运行时,python 3.6.5无法识别我使用pip安装的包(ImportError:No module named Levenshtein);e、 g.、和。在正常和虚拟环境中,当我调用pip-freeze和pip3-freeze时,会显示有问题的包(python-Levenshtein 0.12.0) 根据前面几页给出的一些答案,我的问题似乎是由于虚拟环境中存在多条通向Levenshtein包的路径。供参考: python3 -m venv

与其他一些帖子一样,我遇到了一个问题,即在虚拟环境中运行时,python 3.6.5无法识别我使用pip安装的包(
ImportError:No module named Levenshtein
);e、 g.、和。在正常和虚拟环境中,当我调用
pip-freeze
pip3-freeze
时,会显示有问题的包(
python-Levenshtein 0.12.0

根据前面几页给出的一些答案,我的问题似乎是由于虚拟环境中存在多条通向Levenshtein包的路径。供参考:

python3 -m venv ~/.virtualenvs/myvenv
source ~/.virtualenvs/myvenv/bin/activate
python3
import sys, site
sys.prefix
'/Users/<home directory>/.virtualenvs/myvenv'
print(site.getsitepackages())
['/Users/<home directory>/.virtualenvs/myvenv/lib/python3.6/site-packages', '/Library/Python/3.6/site-packages']
python3-m-venv~/.virtualenvs/myvenv
source~/.virtualenvs/myvenv/bin/activate
蟒蛇3
导入系统,站点
sys.prefix
“/Users//.virtualenvs/myvenv”
打印(site.getsitepackages())
['/Users//.virtualenvs/myvenv/lib/python3.6/site-packages','/Library/Python/3.6/site-packages']
所以,我想我的问题有两个:

  • 对于
    site.getsitepackages()
    site.getsitepackages()是否有多个结果是导致包在虚拟环境中无法识别的(可能)原因
  • 如果是,如何删除非虚拟环境路径/重置虚拟环境的路径

  • 提前感谢您的帮助,非常感谢。

    我认为这不是正确的分析。您可以在不使用系统包的情况下创建venv,但仅包含系统包的裸venv的行为应与无venv相同。您遇到了什么实际问题,软件包安装在哪里?你有轨迹反馈吗?
    echo“$PYTHONPATH”
    在venv内部打印什么吗?那么外部呢?@tripleee谢谢你的回答,我很抱歉不清楚——我对Python比较陌生,通常不熟悉诊断过程和虚拟环境。回答你的问题:1)当我尝试在venv中导入Levenshtein时,我得到了我链接到的帖子中提到的回溯:
    ImportError:没有名为Levenshtein的模块
    2)“echo”$PYTHONPATH`调用在venv内外都不返回任何内容。虽然我不知道为什么,但在venv内部下载带有%运算符的软件包似乎可以解决错误:
    %pip安装python Levenshtein
    请将您的问题包含在这些详细信息中。
    %
    看起来像是在使用某种笔记本;可能也会提供这方面的信息。