2017-02-13 12 views
16

Tôi đã cố gắng sử dụng virtualenv để chuyển đổi giữa các phiên bản python trước khi biết rằng tôi có thể sử dụng cả python và python3 trên máy Mac của mình."Gói này không nên truy cập được trên Python 3" khi chạy python3

tôi đã có thể sửa chữa phiên bản python 2.7 của tôi vì vậy mà vẫn hoạt động tốt tuy nhiên, bây giờ khi tôi chạy python3, tôi nhận được lỗi này:

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. 

Tôi đã nhìn trực tuyến cho lỗi này nhưng hầu hết các cuộc hội thoại đã được sửa chữa lên các bản vá và sau đó nâng cấp virtualenv. Tuy nhiên, điều này vẫn không khắc phục được sự cố của tôi.

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

Thêm đầu ra của 'env | egrep -i 'python | virtualenv'' cho câu hỏi của bạn –

+0

@CharlesDuffy đã thêm đầu ra – user1883614

Trả lời

36

môi trường của bạn có chứa PYTHONPATH=/usr/local/lib/python2.7/site-packages

này không làm việc với Python 3 vì lý do rõ ràng. Để loại bỏ nó:

unset PYTHONPATH 
+1

Nhưng tôi muốn giữ cả python và python3. Không unsetting ảnh hưởng đến python của tôi (2,7)? – user1883614

+0

Nếu cấu hình của nó đúng/sane, nó sẽ có 'các gói trang web' riêng trong' sys.path' theo mặc định. Vì vậy, nếu unsetting 'PYTHONPATH' phá vỡ Python 2.7 của bạn, sau đó một cái gì đó về cài đặt Python 2,7 của bạn đã bị hỏng. –

+1

Cảm ơn bạn đã sửa nó! – user1883614

7

tôi giải quyết vấn đề của tôi với bên dưới lệnh

sudo pip install virtualenv --upgrade 
virtualenv -p python3 env 
Các vấn đề liên quan