Vì tôi vừa đi dù chỉ là một cú kéo, tôi sẽ cố gắng viết câu trả lời mà tôi đã mong ước từ hai giờ trước. Điều này dành cho những người không chỉ muốn giải pháp sao chép và dán
Thứ nhất: Bạn có thắc mắc tại sao việc sao chép và dán đường dẫn hoạt động đối với một số người trong khi nó không hoạt động đối với những người khác? ** Lý do chính, các giải pháp khác nhau là các phiên bản python khác nhau, 2.x hoặc 3.x. Thực sự có các phiên bản khác nhau của virtualenv và virtualenvwrapper hoạt động với python 2 hoặc 3. Nếu bạn đang sử dụng python 2, hãy cài đặt như vậy:
sudo pip install virutalenv
sudo pip install virtualenvwrapper
Nếu bạn định sử dụng python 3, hãy cài đặt phiên bản python 3 liên quan
sudo pip3 install virtualenv
sudo pip3 install virtualenvwrapper
Bạn đã cài đặt thành công các gói cho phiên bản python của mình và tất cả đã được thiết lập, phải không? Vâng, hãy thử nó. Nhập workon
vào thiết bị đầu cuối của bạn. Thiết bị đầu cuối của bạn sẽ không thể tìm thấy lệnh ( workon
là lệnh của virtualenvwrapper). Tất nhiên là sẽ không. Workon
là một tệp thực thi sẽ chỉ có sẵn cho bạn khi bạn tải / nguồn tệp virtualenvwrapper.sh
. Nhưng hướng dẫn cài đặt chính thức bạn đã đề cập đến cái này, phải không ?. Chỉ cần mở .bash_profile của bạn và chèn thông tin sau, nó cho biết trong tài liệu:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/Devel
source /usr/local/bin/virtualenvwrapper.sh
Đặc biệt là lệnh source /usr/local/bin/virtualenvwrapper.sh
có vẻ hữu ích vì lệnh dường như tải / nguồn tệp mong muốn virtualenvwrapper.sh
chứa tất cả các lệnh bạn muốn làm việc với như workon
và mkvirtualenv
. Nhưng vâng, không. Khi thực hiện theo hướng dẫn cài đặt chính thức, bạn rất có khả năng nhận được lỗi từ bài đầu tiên: mkvirtualenv: command not found
. Vẫn không có lệnh nào được tìm thấy và bạn vẫn thất vọng. Vậy vấn đề ở đây là gì? Vấn đề là virtualenvwrapper.sh không phải là bạn đang tìm kiếm nó ngay bây giờ. Lời nhắc ngắn ... bạn đang xem ở đây:
source /usr/local/bin/virtualenvwrapper.sh
Nhưng có một cách khá đơn giản để tìm tệp mong muốn. Chỉ loại
which virtualenvwrapper
đến thiết bị đầu cuối của bạn. Thao tác này sẽ tìm kiếm PATH của bạn cho tệp, vì nó rất có thể nằm trong một số thư mục được bao gồm trong PATH của hệ thống của bạn.
Nếu hệ thống của bạn rất lạ, tệp mong muốn sẽ ẩn bên ngoài thư mục PATH. Trong trường hợp đó, bạn có thể tìm thấy đường dẫn đến virtalenvwrapper.sh
bằng lệnh shellfind / -name virtualenvwrapper.sh
Kết quả của bạn có thể trông giống như sau: /Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh
Xin chúc mừng. You have found your missing file!
. Bây giờ tất cả những gì bạn phải làm là thay đổi một lệnh trong .bash_profile của bạn. Chỉ là sự thay đổi:
source "/usr/local/bin/virtualenvwrapper.sh"
đến:
"/Library/Frameworks/Python.framework/Versions/3.7/bin/virtualenvwrapper.sh"
Xin chúc mừng. Virtualenvwrapper hiện hoạt động trên hệ thống của bạn. Nhưng bạn có thể làm một điều nữa để nâng cao giải pháp của mình. Nếu bạn đã tìm thấy tệp virtualenvwrapper.sh
bằng lệnh, which virtualenvwrapper.sh
bạn biết rằng nó nằm trong một thư mục của PATH. Vì vậy, nếu bạn chỉ ghi tên tệp, hệ thống tệp của bạn sẽ giả sử tệp nằm trong thư mục PATH. Vì vậy, bạn không cần phải viết ra đường dẫn đầy đủ. Chỉ loại:
source "virtualenvwrapper.sh"
Đó là nó. Bạn không còn bực bội. Bạn đã giải quyết được vấn đề của mình. Hy vọng.
WORKON_HOME
thành "~ / .virtualenvs" ( giá trị mặc định ) cho phép đặt virtualenvs riêng tư