簡體   English   中英

為什么venv引用不同的python版本

[英]why does venv reference different python version

我遵循djangogirls教程來開始使用django,並使所有功能正常運行。 一旦完成了基礎教程,一切都按部就班,我決定再次執行這些步驟以制作新內容,並變得更加熟悉使用git,django,venv等。

供參考-我在Windows 10上並安裝了python 2.7和python 3.5。 我正在將Django 3.0.4和python 3.5.2一起使用。

腳步:

>mkdir v2
>cd v2
>"d:/python 3.5.2/python" -m venv myenv
>cd myenv/scripts/activate
(myenv) python -m pip install -U 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的任何內容?

有人可以幫我在這里找到我所缺少的嗎? ty。

默認情況下,virtualenv使用python2。 如果要使用python3,則必須明確指定它。

運行以下命令以使用python3設置virtualenv: virtualenv -p python3 envname

在“ Python 3.5.2 / scripts”中,我運行了:

virtualenv d:/<dirname>

之后的所有內容(django-admin.py startproject projectname)均正常運行。 仍然不確定這里出了什么問題,但這也許可以幫助其他人...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM