【问题标题】:multiple Python executables found in sys.path在 sys.path 中找到多个 Python 可执行文件
【发布时间】:2021-10-09 02:14:54
【问题描述】:

我使用 Anaconda 来管理 Windows 机器上的多个虚拟环境。在其中一个虚拟环境中,我进行了以下测试;我发现sys.path 中有多个 python 版本。我的理解是它来自多个环境。这是正确的吗?它会导致任何意想不到的问题吗?

(test_kats) C:\>python
Python 3.7.9 | packaged by conda-forge | (default, Feb 13 2021, 19:28:53) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> for p in sys.path:
...     print(p)
...

C:\spark\spark-3.0.2-bin-hadoop2.7\python\lib\py4j-0.10.9-src.zip
C:\spark\spark-3.0.2-bin-hadoop2.7\python
C:\Users\u\Anaconda3\envs\test_kats\python37.zip
C:\Users\u\Anaconda3\envs\test_kats\DLLs
C:\Users\u\Anaconda3\envs\test_kats\lib
C:\Users\u\Anaconda3\envs\test_kats
C:\Users\u\AppData\Roaming\Python\Python37\site-packages
C:\Users\u\Anaconda3\envs\test_kats\lib\site-packages
C:\Users\u\Anaconda3\envs\test_kats\lib\site-packages\win32
C:\Users\u\Anaconda3\envs\test_kats\lib\site-packages\win32\lib
C:\Users\u\Anaconda3\envs\test_kats\lib\site-packages\Py

【问题讨论】:

  • sys.path 中没有一个可执行文件。这就是 packages 被查找的地方——它不是PATH 环境变量。例如,C:\spark\spark-3.0.2-bin-hadoop2.7\python 是一个目录。

标签: python-3.x anaconda virtualenv conda


【解决方案1】:

sys.path 是 Python 查找模块和包导入的地方(按出现顺序)。

  1. 第一个路径始终是当前文件夹
  2. 接下来是PYTHONPATH 系统变量中定义的路径
  3. 最后是 active conda 环境中的库和包的路径,其中 ..\AppData\Roaming\Python.. 来自 pip 安装

python.exe 不必在该路径上,因为它已经在运行。

【讨论】:

    猜你喜欢
    • 2014-06-27
    • 2013-11-13
    • 2021-11-30
    • 2017-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-03
    • 2017-11-05
    相关资源
    最近更新 更多