2017-08-14 16 views
26

Chạy như sau:thiết lập môi trường trong virtaulenv sử dụng python3 mắc kẹt trên setuptools, pip, bánh xe

virtualenv -p python3 venv

cho:

Running virtualenv with interpreter /usr/bin/python3 
Using base prefix '/usr' 
New python executable in /specific/a/home/cc/students/csguests/taivanbatb/venv/bin/python3 
Also creating executable in /specific/a/home/cc/students/csguests/taivanbatb/venv/bin/python 
Installing setuptools, pip, wheel... 

đó là nơi nó bị mắc kẹt.

Calling Ctrl-C cho:

File "/usr/local/bin/virtualenv", line 11, in <module> 
    sys.exit(main()) 
    File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 671, in main 
Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 2328, in <module> 
    raise SystemExit(popen.wait()) 
    File "/usr/lib/python2.7/subprocess.py", line 1376, in wait 
    pid, sts = _eintr_retry_call(os.waitpid, self.pid, 0) 
    File "/usr/lib/python2.7/subprocess.py", line 476, in _eintr_retry_call 
    return func(*args) 
KeyboardInterrupt 
    main() 
    File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 713, in main 
    symlink=options.symlink) 
    File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 945, in create_environment 
    download=download, 
    File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 901, in install_wheel 
    call_subprocess(cmd, show_stdout=False, extra_env=env, stdin=SCRIPT) 
    File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 769, in call_subprocess 
    line = stdout.readline() 
KeyboardInterrupt 

Tương tự như this.

Như được đề xuất trong câu hỏi được liên kết, tôi đã thử cài đặt với --no-wheel nhưng không có kết quả. Và tôi chắc chắn nó không phải là một vấn đề kết nối mạng bởi vì thiết lập một môi trường bằng cách sử dụng python2 sử dụng virtualenv env cho không có lỗi.

Các phiên bản cụ thể của tất cả các gói Tôi đang sử dụng như sau:

python 3.4.0 python 2.7.6 virtualenv 15.1.0

+0

I have seen that trước là tốt. [Cách giải quyết này] (https://stackoverflow.com/a/43623195/2296458) dường như hoạt động, nhưng tôi vẫn không giải thích lý do tại sao treo xảy ra ngay từ đầu. – CoryKramer

+0

@CoryKramer cách giải quyết mà bạn đã liên kết không hoạt động nếu tôi đang sử dụng python3 như 'virtualenv -p python3 venv --no-wheel' ... nó vẫn bị kẹt –

+0

Bạn đang sử dụng phiên bản hệ điều hành nào? – kshikama

Trả lời

11

1.Check kết nối internet của bạn.

2.Thiết lập python3 làm trình biên dịch python mặc định của bạn vì bạn có python2.7 làm trình thông dịch python mặc định của mình. Hãy thử sử dụng mà không cần bất kỳ bánh xe bằng cách: -
virtualenv venv --no-wheel và sau đó kích hoạt virtualenv và chạy: -

pip install --upgrade pip 
pip install setuptools --no-use-wheel --upgrade 
pip install wheel --no-cache 

Nếu bạn đang ở phía sau proxy sau đó sử dụng: -
sudo pip download setuptools pip wheel --proxy http://<yourproxyhere>

Sau virtualenv -p python3 venv tất cả điều này đang làm việc trong tôi virtualenv hoàn toàn.
LƯU Ý: Giả sử môi trường ảo đã được đặt trong hệ thống của bạn và python3 là trình thông dịch mặc định của bạn.

Hoặc, bạn không cần phải làm virtualenv -p python3 venv. Bạn có thể chỉ định trình thông dịch python (có trong thư mục/usr/bin/*) mà bạn muốn sử dụng trong virtualenv và sử dụng nó như sau: -
virtualenv --python =/usr/bin/pythonX.Y /home/username/path/to/virtualenv_name

nếu bạn muốn cài đặt trong thư mục làm việc hiện tại thì bạn có thể sử dụng: -
virtualenv --python =/usr/bin/pythonX.Y virtualenv_name
REFERENCE

0

Theo dõi ngăn xếp của bạn cho biết bạn đang sử dụng virtualenv từ bản cài đặt 2.7 của mình. Điều này sẽ chỉ ra rằng PATH của bạn không được đặt cho 3.x. Bắt đầu một trình bao mới, đặt PATH sao cho /usr/local/lib/python2.7 không nằm trên đó và thử lại.

0

virtualenv chỉ là một gói python. Và bạn có thể cài đặt nó trên cả python2 và python3.

Theo kinh nghiệm của tôi, virtualenv trên python3 xử lý cả hai phiên bản python tốt. Stacktrace của bạn cho thấy rằng bạn sử dụng virtualenv cho python2 - thử chuyển sang python3.

Để cài đặt nó trên python3, chạy

pip3 install virtualenv 

hoặc, nếu bạn phải sử dụng apt-get đối với một số lý do,

apt-get install python3-virtualenv 
Các vấn đề liên quan