为什么Python似乎同时使用两个解释器?

时间:2019-11-29 08:35:30

标签: python virtualenv pyenv

我曾经使用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>

快来了。

1 个答案:

答案 0 :(得分:0)

这是因为我在版本管理仍为pyenv时创建了虚拟环境。如果取消该版本管理,则不会获得文件pyenv.cfg,而是会得到文件pip selfcheck.json:位于虚拟环境目录中的paragraph.$$('//*') // find all childs paragraph.$('a') // find first child link paragraph.$('*=Submit') // find first child element which contains 'Submit' ,其中包含lib,bin和include。