【问题标题】:why does venv reference different python version为什么venv引用不同的python版本
【发布时间】:2017-05-05 04:37:07
【问题描述】:

我按照 djangogirls 教程开始使用 django 并且一切正常。完成基本教程后,一切正常,我决定再次完成这些步骤以制作新内容并更加熟悉使用 git、django、venv 等。

fyi - 我在 Windows 10 上并安装了 python 2.7 和 python 3.5。我正在使用 python 3.5.2 和 django 1.10.4。

步骤:

>mkdir v2
>cd v2
>"d:/python 3.5.2/python" -m venv myenv
>cd myenv/scripts/activate
(myenv) python -m pip install -U pip

由于某种原因,这是我这次能够升级 pip 的唯一方法

(myenv) d:/v2/myenv/scripts> pip install django~=1.10.0
(myenv) d:/v2/myenv/scripts> django-admin.py startproject mysite

这就是魔法不会发生的地方:

d:\v2>django-admin.py startproject mysite2
Traceback (most recent call last):
  File "D:\v3\myenv\Scripts\django-admin.py", line 2, in <module>
    from django.core import management
  File "C:\Python27\lib\site-packages\django\core\management\__init__.py",         line 10, in <module>
    from django.apps import apps
  File "C:\Python27\lib\site-packages\django\apps\__init__.py", line 1, in     <module>
    from .config import AppConfig
  File "C:\Python27\lib\site-packages\django\apps\config.py", line 4, in     <module>
    from django.core.exceptions import AppRegistryNotReady,     ImproperlyConfigured
  File "C:\Python27\lib\site-packages\django\core\exceptions.py", line 5, in <module>
    from django.utils.encoding import force_text
  File "C:\Python27\lib\site-packages\django\utils\encoding.py", line 11, in <module>
    from django.utils.six.moves.urllib.parse import quote, unquote
  File "C:\Python27\lib\site-packages\django\utils\six.py", line 92, in     __get__
    result = self._resolve()
  File "C:\Python27\lib\site-packages\django\utils\six.py", line 160, in     _resolve
    module = _import_module(self.mod)
  File "C:\Python27\lib\site-packages\django\utils\six.py", line 82, in     _import_module
    __import__(name)
  File "C:\Python27\lib\urllib.py", line 26, in <module>
    import socket
  File "C:\Python27\lib\socket.py", line 47, in <module>
    import _socket
ImportError: Module use of python35.dll conflicts with this version of Python.

据我所知,我遵循了相同的步骤。我不确定为什么我的 venv 中安装的 djano 会引用 python 2.7,因为我认为如果从 python 3.5.2 目录创建我的 venv,它会引用该版本,以及我在该目录中使用 pip 的任何内容?

有人可以帮我找到我在这里缺少的东西吗?太棒了。

【问题讨论】:

    标签: python django pip virtualenv


    【解决方案1】:

    在“Python 3.5.2/scripts”中我跑了:

    virtualenv d:/<dirname>
    

    (django-admin.py startproject projectname) 之后的一切都正常工作。仍然不确定这里出了什么问题,但也许这对其他人有帮助......

    【讨论】:

      【解决方案2】:

      默认情况下,virtualenv 使用 python2。如果要使用python3,则必须明确指定。

      运行以下命令以使用 python3 设置 virtualenv: virtualenv -p python3 envname

      【讨论】:

      • 这似乎也不起作用。我真的不确定在我第一次这样做并且它正常工作和第二次之间发生了什么。很奇怪。
      猜你喜欢
      • 1970-01-01
      • 2021-01-24
      • 1970-01-01
      • 2022-01-22
      • 2020-11-02
      • 1970-01-01
      • 2020-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多