【问题标题】:Why does Python seem to be using two interpreters at once?为什么 Python 似乎同时使用两个解释器?
【发布时间】:2023-04-09 05:40:01
【问题描述】:

我曾经使用pyenv 作为我的版本管理器,但安装软件包时遇到了太多麻烦,所以我转而使用virtualenv。所以当我激活我的虚拟环境并写:which python 我得到:

/Users/kylefoley/codes/venv/bin/python

但是当我实际使用 python 时,它似乎仍在使用pyenv。例如:

(venv) Admins-MacBook-Pro-4:~ kylefoley$ python
Python 3.8.0 (default, Nov 28 2019, 02:43:40) 
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import Tk
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'Tk'
>>> import Tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'Tkinter'
>>> import tkinter
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Users/kylefoley/.pyenv/versions/3.8.0/lib/python3.8/tkinter/__init__.py", line 36, in <module>
    import _tkinter # If this fails your Python may not be configured for Tk
ModuleNotFoundError: No module named '_tkinter'

我并不是想解决无法使用Tkinter 的问题,我只是想了解为什么这行:

File "/Users/kylefoley/.pyenv/versions/3.8.0/lib/python3.8/tkinter/__init__.py", line 36, in <module>

即将到来。

【问题讨论】:

  • 也许你需要检查PATH文件,python可能是从指定的那个运行的
  • 您是否按照本指南尝试过unistalling pyenv
  • @vanojx1 我无法卸载 pyenv,因为我需要 python 一直在工作。在我让另一个版本控制管理器工作之前,我无法卸载一个版本控制管理器。
  • @eggrobot,我不确定您的意思,但如果您指的是 bash_profile,我无法让 Python 根据 bash_profile 中的内容更改其解释器。在我的 bash_profile 中,我尝试写:export PYTHONPATH="/usr/local/Cellar/python/3.8.0/bin/python3:$PYTHONPATH" 但这永远无法更改我使用的 Python 版本。

标签: python virtualenv pyenv


【解决方案1】:

因为我在我的版本管理还是pyenv的时候就创建了虚拟环境。如果我取消该版本管理,那么我不会得到文件pyenv.cfg,而是得到文件:pip selfcheck.json,它位于 lib、bin 和包含的虚拟环境目录中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    • 2014-01-08
    • 2016-04-09
    • 1970-01-01
    • 2018-11-08
    相关资源
    最近更新 更多