2017-02-13 5 views
16

Próbowałem użyć virtualenv, aby przełączać się między wersjami python, zanim się dowiem, że mogę używać zarówno python, jak i python3 na moim Macu."Ten pakiet nie powinien być dostępny na Pythonie 3" podczas działania python3

udało mi się naprawić mój wersji Pythona 2.7, tak że nadal działa dobrze, jednak teraz gdy uruchamiam python3, otrzymuję ten błąd:

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. 

Szukałem online dla tego błędu, ale większość rozmowa polegała na naprawianiu łatki, a następnie uaktualnianiu virtualenv. Jednak to nadal nie rozwiązuje mojego problemu.

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

Dodaj wyjście 'env | egrep -i 'python | virtualenv'' na twoje pytanie –

+0

@CharlesDuffy dodał wyjście – user1883614

Odpowiedz

36

Twoje środowisko zawiera PYTHONPATH=/usr/local/lib/python2.7/site-packages

ta nie działa z Pythonie 3 z oczywistych powodów. Aby ją usunąć:

unset PYTHONPATH 
+1

Ale chciałbym zachować zarówno python, jak i python3. Czy rozbrojenie wpływa na mojego pythona (2.7)? – user1883614

+0

Jeśli jego konfiguracja jest poprawna/przy zdrowych zmysłach, domyślnie będzie miała własne 'site-packages' w swoim' sys.path'. Więc jeśli wyłączenie 'PYTHONPATH' zepsuje twój Python 2.7, wtedy coś o twojej instalacji Pythona 2.7 było już zepsute. –

+1

Dziękuję, to naprawiło! – user1883614

7

mi rozwiązać mój problem z poniższej komendy

sudo pip install virtualenv --upgrade 
virtualenv -p python3 env 
Powiązane problemy