如何在我的虚拟环境中使用 Python 3 (3.5) 作为默认解释器?

Posted

技术标签:

【中文标题】如何在我的虚拟环境中使用 Python 3 (3.5) 作为默认解释器?【英文标题】:How to use Python 3 (3.5) as the default interpreter in my virtual environment? 【发布时间】:2016-03-05 10:26:08 【问题描述】:

我在 Mac 上安装 Python 3.5 时遇到了问题。当我运行我的 Django 开发服务器时,我想使用 Python 3.5 作为解释器。我在尝试时遇到了这个问题(我知道我必须安装一个 virtualenv,请阅读下文):

$ python3 manage.py runserver
Traceback (most recent call last):
  File "manage.py", line 7, in <module>
    from mezzanine.utils.conf import real_project_name
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/Mezzanine-4.0.1-py3.5.egg/mezzanine/utils/conf.py", line 7, in <module>
    from django.conf import global_settings as defaults
ImportError: No module named 'django'

第一个是当我尝试在我的虚拟环境中安装默认安装在 Python 2.7 上的 pip 包时:

pip install django==1.9rc2
Collecting django==1.9rc2
  Downloading Django-1.9rc2-py2.py3-none-any.whl (6.4MB)
    100% |████████████████████████████████| 6.4MB 66kB/s 
Installing collected packages: django
Successfully installed django-1.9rc2

我使用 Django,所以我第一次尝试安装虚拟环境。首先我用 pip 尝试过,但是没有用。

那么,当我使用 Python 解释器和在我的虚拟环境中时,如何设置以使我的 Python3.5 成为默认用法?我无法弄清楚这一点,或者我在我的过程中做错了什么。

编辑:

感谢您的回答和评论。我尝试了这两种解决方案,但同样的错误仍然存​​在。请参阅下面的输出:

$ virtualenv -p /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5 Django/
Running virtualenv with interpreter /Library/Frameworks/Python.framework/Versions/3.5/bin/python3.5
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/virtualenv.py", line 14, in <module>
    import shutil
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/shutil.py", line 10, in <module>
    import fnmatch
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/fnmatch.py", line 15, in <module>
    import functools
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/functools.py", line 21, in <module>
    from collections import namedtuple
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/collections/__init__.py", line 16, in <module>
    from reprlib import recursive_repr as _recursive_repr
  File "/Library/Python/2.7/site-packages/reprlib/__init__.py", line 7, in <module>
    raise ImportError('This package should not be accessible on Python 3. '
ImportError: This package should not be accessible on Python 3. Either you are trying to run from the python-future src folder or your installation of python-future is corrupted.

我的 virtualenv 版本: 13.1.2

【问题讨论】:

在创建新的 virtualenv $ virtualenv -p /usr/bin/python3.5 &lt;path/to/new/virtualenv/&gt; 时尝试此操作,取自 ***.com/questions/1534210/… @qasimalbaqali:我试过了,在我的问题中检查上面的输出。 你真的激活了你的virtualenv吗?还有你用的是什么版本的 virtualenv? @PadraicCunningham 他正在尝试创建一个 virtualenv,因此在创建 python 3.5 virtualenv 之前他实际上无法激活它。 @PadraicCunningham:是的,它适用于 Python 2.7。但后来我又试了一次,因为我想要 Python 3.5,现在我什至无法创建虚拟环境。 【参考方案1】:

您的错误与已知的virtualenv bug 有关python-future 并混合了2.7 和3.x 模块路径,解决方案是将virtualenv 降级到版本12.0.2 是建议在链接中。

【讨论】:

【参考方案2】:

首先,如果你要使用多个版本的python,那么你必须使用Virtual Env.Also然后使用以下命令创建你的virtualenv,以便它使用python 3.5作为默认环境:

          virtualenv -p python3 envname

然后在virtualenv中安装django。激活你的virtualenv后

【讨论】:

以上是关于如何在我的虚拟环境中使用 Python 3 (3.5) 作为默认解释器?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 2.7 创建 Python 3.5 虚拟环境?

如何列出 Linux 中的所有 python 虚拟环境? [复制]

配置 python 虚拟环境 (win10 )

如何在 Nifi 的虚拟环境中运行具有依赖关系的 python 脚本?

如何使用 python3 创建虚拟环境

Python 3 使用venv创建虚拟环境