2017-02-13 16 views
16

Mac'imde hem python hem de python3 kullanabileceğimi öğrenmeden önce, python sürümleri arasında geçiş yapmak için virtualenv kullanmaya çalışıyorum. python3'ü çalıştırırken bu pakete Python 3 erişilebilir değil.

ben hala ancak iyi çalışır yüzden python3 çalıştırdığınızda anda, bu hatayı alıyorum, benim piton 2.7 sürümü düzeltmek başardı: Bu hatanın çevrimiçi

Failed to import the site module 
Traceback (most recent call last): 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 544, in <module> 
main() 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 530, in main 
known_paths = addusersitepackages(known_paths) 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 282, in addusersitepackages 
user_site = getusersitepackages() 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 258, in getusersitepackages 
user_base = getuserbase() # this will also set USER_BASE 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site.py", line 248, in getuserbase 
USER_BASE = get_config_var('userbase') 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 601, in get_config_var 
return get_config_vars().get(name) 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sysconfig.py", line 580, in get_config_vars 
import _osx_support 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_osx_support.py", line 4, in <module> 
import re 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/re.py", line 125, in <module> 
import functools 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/functools.py", line 21, in <module> 
from collections import namedtuple 
    File "/usr/local/Cellar/python3/3.6.0/Frameworks/Python.framework/Versions/3.6/lib/python3.6/collections/__init__.py", line 32, in <module> 
from reprlib import recursive_repr as _recursive_repr 
    File "/usr/local/lib/python2.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. 

ben baktım ama çoğu konuşma yamayu düzeltmek ve sanallaştırmayı yükseltmek üzerineydi. Ancak, bu hala sorunumu gidermiyor.

python3 -V: Python 3.6.0 
virtualenv --version: 15.1.0 
env | egrep -i 'python|virtualenv': PYTHONPATH=/usr/local/lib/python2.7/site-packages: 
+0

ilgili sorunu da hallettim | egrep -i 'python | virtualenv' sorunuza –

+0

@CharlesDuffy çıktıyı ekledi – user1883614

cevap

36

Kişisel çevre PYTHONPATH=/usr/local/lib/python2.7/site-packages

Bu bariz nedenlerden Python 3 ile çalışmaz içeriyor. Bunu kaldırmak için:

unset PYTHONPATH 
+1

Ama hem python hem de python3'ü tutmak istiyorum. Kararsızlık pythonumu etkiler mi (2.7)? – user1883614

+0

Yapılandırması doğru/doğruysa, varsayılan olarak "sys.path" dosyasında kendi 'site-paketleri 'olacaktır. Python 2.7'nizi "PYTHONPATH" un bozması durumunda, Python 2.7 kurulumunuzla ilgili bir şey çoktan kırılmıştı. –

+1

Teşekkür ederim, bu düzeltildi! – user1883614

7

Ben env `çıktısını ekle komutuyla

altına
sudo pip install virtualenv --upgrade 
virtualenv -p python3 env