Không có cách nào trong số này hoạt động. Tôi đã cài đặt Python3 trước khi thiết lập máy osx, và pip và tất cả mặc định cho nó.
Thứ nhất, kiểm tra mà bạn đã cài đặt python:
$ `which python` -V
Nếu đây trả về "Python 2.7.12", sau đó bạn được thiết lập để chạy:
$ mkvirtualenv -p `which python` api_server
Running virtualenv with interpreter /usr/local/bin/python
New python executable in /Users/eric/.virtualenvs/api_server/bin/python2.7
Also creating executable in /Users/eric/.virtualenvs/api_server/bin/python
Installing setuptools, pip, wheel...done.
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/eric/.virtualenvs/api_server/bin/get_env_details
này cũng sẽ kích hoạt api_server
workon, thay đổi python của bạn có thể thực thi:
$ which python
/Users/eric/.virtualenvs/api_server/bin/python
$ python -V
Python 2.7.12
which python
thực sự làm gì? Nó ra các thư mục của các tập tin thực thi python tìm thấy trong PATH của bạn:
$ which python
/usr/local/bin/python
Bằng cách sử dụng which python
, cơ bản bạn đang đi qua trong /usr/local/bin/python
đến -p
tùy chọn trong thư mục mkvirtualenv.
Điều gì sẽ xảy ra khi bạn có nhiều hơn một tệp thực thi python được trả lại trong which python
? Chỉ cần tìm cái bạn muốn và chuyển nó vào:
$ mkvirtualenv -p /usr/local/bin/python3 api_server
Và virtualenvwrapper sẽ kết thúc bằng cách sử dụng con trăn đó để thực thi.
Không đi qua 'cổng chọn ...' và gắn bó với cơ sở 2.7 của bạn, chỉ chạy công việc 'mkvirtualenv --python/path/to/python2.6'? Nó sẽ tự động chuyển sang (và thiết lập môi trường với) trình thông dịch chính xác. Trên hệ thống của tôi (thiết lập với homebrew), 'mkvirtualenv -p python2.6' hoạt động tốt. –
Tôi không nhận được lỗi hook_loader, nhưng nó phàn nàn về việc thiếu DEST_DIR $ mkvirtualenv --python /opt/local/bin/python2.7 Chạy virtualenv với thông dịch viên /opt/local/bin/python2.7 Bạn phải cung cấp DEST_DIR – wmfox3
Rất tiếc, xin lỗi - đã bỏ qua đối số chính! Đó phải là 'mkvirtualenv --python /path/to/python2.6 env_name'. mkvirtualenv tạo một thư mục có tên là "env_name" trong '$ WORKON_HOME' của bạn, được chuyển cho virtualenv làm đối số' DEST_DIR' của nó. Nếu không xác định tên, nó sẽ có một thời gian khó khăn để tìm ra nơi để thiết lập những thứ lên, đó là chắc chắn. –