2016-12-20 45 views
0

我跟着djangogirls教程開始使用django並且一切正常。一旦我完成了基本的教程,所有的工作順序,我決定再次通過這些步驟,使一些新的東西,使用git,django,venv等更熟悉。爲什麼venv參考不同的python版本

fyi - 我在Windows 10和安裝了python 2.7和python 3.5。我用django 1.10.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 

由於某種原因,這是我能這次升級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。

回答

0

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

運行下面的命令來設置的virtualenv與python3: virtualenv -p python3 envname

+0

這似乎並沒有工作。我真的不確定在第一次做這件事情和第二次做事時發生了什麼。奇怪的。 – verase

0

而在 「巨蟒3.5.2 /腳本」 我跑:

virtualenv d:/<dirname> 

一切後(django-admin.py startproject命令項目名稱)正確工作。仍然不知道這裏出了什麼問題,但也許這可以幫助別人...

相關問題