2017-02-13 28 views
16

我试图使用virtualenv在Python版本之间切换,然后才知道我可以在我的Mac上同时使用python和python3。“这个软件包不应该可以在Python 3上访问”当运行python3

我能解决我的Python 2.7版本,这样仍然能正常不过,现在当我运行python3,我得到这个错误:

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. 

我在网上看了这个错误,但大部分谈话是在修理补丁,然后升级virtualenv。但是,这仍然不能解决我的问题。

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

添加ENV的'输出| egrep -i'python | virtualenv''你的问题 –

+0

@CharlesDuffy添加输出 – user1883614

回答

36

环境中包含PYTHONPATH=/usr/local/lib/python2.7/site-packages

这并不是出于显而易见的原因与Python 3工作。将其删除:

unset PYTHONPATH 
+1

但是我想保留python和python3。不会影响我的python(2.7)? – user1883614

+0

如果配置是正确的/理智的,默认情况下,它的'sys.path'中会有自己的'site-packages'。因此,如果未设置“PYTHONPATH”会破坏Python 2.7,那么Python 2.7安装的某些内容已经被破坏。 –

+1

谢谢,修好了! – user1883614

7

我解决我的问题与下面的命令

sudo pip install virtualenv --upgrade 
virtualenv -p python3 env 
相关问题