Không tìm thấy lệnh Virtualenv


207

Tôi không thể virtualenvlàm việc mặc dù có nhiều nỗ lực. Tôi đã cài đặt virtualenvtrên MAC OS X bằng cách sử dụng:

pip install virtualenv

và cũng đã thêm PATHvào .bash_profile. Mỗi khi tôi cố chạy virtualenvlệnh, nó sẽ trả về:

-bash: virtualenv: command not found

Mỗi khi tôi chạy pip install virtualenv, nó sẽ trả về:

Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages

Tôi hiểu rằng trong mac, virtualenvnên được cài đặt chính xác trong

/usr/local/bin

virtualenvthực sự được cài đặt /usr/local/bin, nhưng bất cứ khi nào tôi cố chạy virtualenvlệnh, lệnh sẽ không được tìm thấy. Tôi cũng đã thử chạy virtualenvlệnh trong thư mục /usr/local/binvà nó cho tôi kết quả tương tự:

-bash: virtualenv: command not found

Đây là những PATH tôi đã thêm vào .bash_profile của tôi

export PATH=$PATH:/usr/local/bin
export PATH=$PATH:/usr/local/bin/python
export PATH=$PATH:/Library/Framework/Python.framework/Version/2.7/lib/site-packages

Bất kỳ cách giải quyết cho điều này? Tại sao điều này là trường hợp?


1
Hãy thử thêm một liên kết tượng trưng để thực thi virtualenv trong / usr / local / bin
Justin Fay

Tôi nên tạo symlink ở đâu? Nó vẫn không hoạt động mặc dù tôi đã cố gắng thêm một liên kết tượng trưng vào thư mục mà tôi muốn sử dụng virtualenv @justinfay
Arial

2
từ việc nhìn vào các đường dẫn phía trên có thể là một cái gì đó giống như, thay thế đường dẫn cuối cùng trong lệnh bằng đường dẫn đến thực thi virtualenv thực tế:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
Justin Fay

2
điều làm việc cho tôi là thêm một liên kết tượng trưngln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
Aliza

Không hoạt động trong một Ubuntu
c24b

Câu trả lời:


336

Nếu bạn đã cài đặt nó với

pip install virtualenv

Bạn cần phải chạy

sudo /usr/bin/easy_install virtualenv

mà đặt nó trong /usr/local/bin/.

Thư mục trên theo mặc định nên có trong của bạn PATH; mặt khác, chỉnh sửa .zshrc(hoặc. bashrc) của bạn cho phù hợp.


1
luôn sẵn lòng giúp đỡ @ngun
Tal Avissar

trên ví dụ AWS EC2 với Amazon Linux, nếu bạn đang dùng thử Encrypt's certbot, hãy thử giải pháp này. Đây là gợi ý duy nhất giải quyết vấn đề virtualenv của tôi.
emrahgunduz

2
Bạn là nhất!
leon wu

6
đầu ra làsudo: /usr/bin/easy_install: command not found
Ced

2
Cảm ơn bạn vì điều này - nhưng tôi ước tôi biết phù thủy nào đang hoạt động ở đây - "easy_install" làm gì mà pip thông thường không làm gì? tức là tại sao điều này làm việc?
Thomas Kimber

153

Tôi đã đối mặt với cùng một vấn đề và đây là cách tôi giải quyết nó:

  1. Vấn đề xảy ra với tôi vì tôi đã cài đặt virtualenv qua pip như một người dùng thông thường (không phải root). Pip cài đặt các gói vào thư mục~/.local/lib/pythonX.X/site-packages
  2. Khi tôi chạy pip với quyền root hoặc với đặc quyền quản trị viên (sudo), nó đã cài đặt các gói trong /usr/lib/pythonX.X/dist-packages. Con đường này có thể khác với bạn.
  3. lệnh virtualenv chỉ được nhận dạng trong kịch bản thứ hai
  4. Vì vậy, để giải quyết vấn đề, hãy làm pip uninstall virtualenvvà sau đó cài đặt lại bằng sudo pip install virtualenv(hoặc cài đặt bằng root)

8
Tôi đã làm theo giải pháp của bạn và nhận được thông báo "... Nếu thực thi pip bằng sudo, bạn có thể muốn cờ-sudo". Cuối cùng sudo -H pip cài đặt virtualenv đã thực hiện công việc cho tôi (trên OS X), cảm ơn bạn
smudo78

1
Nếu root không có sẵn trên máy của bạn thì sao?
dùng5359531

Đã giải quyết vấn đề. Tôi đoán cái này có thể đi vào thư mục toàn cầu thay vì --user.

Vấn đề này cũng xảy ra khi chính pip được cài đặt trong ~ / .local / SOME_PATH. Tôi cped mọi thứ trong site-packagesdir vào /usr/lib/pythonx.x/site-packages, và rm -rfed thư mục gốc.
yoon

46

Câu trả lời đơn giản nhất. Chỉ:

pip uninstall virtualenv

và sau đó:

pip install virtualenv

Hoặc bạn có thể cài đặt virtualenv với sudo, trong trường hợp đó:

pip install --user virtualenv

Ồ Đây là những gì đã lừa cho tôi. Tôi đang sử dụng pyenvbằng cách này
race_carr

Đây là cách để Mac OS X sử dụng brew.
TCSGrad

Đã chiến đấu với điều này trong nhiều tuần và nó đã cản trở thời gian hạn chế của tôi để làm việc trong một dự án python và đây là giải pháp duy nhất để làm việc cho tôi trên mac. Cảm ơn bạn!
HellaDev

37

Trên Ubuntu 18.04 LTS tôi cũng gặp phải lỗi tương tự. Lệnh sau đã hoạt động:

sudo apt-get install python-virtualenv

1
brew install python-virtualenvkhông tồn tại
Leonard

Làm việc như một cơ duyên vào ngày 18.04 của tôi, Cảm ơn
Nischaya Sharma

Bình chọn để quảng bá aptnhư là một người kế nhiệm apt-get.
greybeard

24

Tôi gặp vấn đề tương tự trên Mac OS X El Capitan .

Khi tôi cài đặt virtualenvnhư thế sudo pip3 install virtualenvtôi không có virtualenvdòng lệnh của mình.

Tôi đã giải quyết vấn đề này bằng cách làm theo các bước sau:

  1. Gỡ cài đặt trước đó.
  2. Chuyển sang tài khoản siêu người dùng trước khi virtualenvcài đặt bằng cách gọisudo su
  3. Cài đặt virtualenvbằng cách gọipip3 install virtualenv
  4. Cuối cùng, bạn sẽ có thể truy cập virtualenvtừ cả hai usersuper usertài khoản.

15

Tìm ra vấn đề

Hãy thử cài đặt với --verbosecờ

pip install virtualenv --verbose

Đầu ra sẽ trông giống như thế này

  ..
  Using cached virtualenv-15.1.0-py2.py3-none-any.whl
  Downloading from URL https://pypi.python.org/packages/6f/86/3dc328ee7b1a6419ebfac7896d882fba83c48e3561d22ddddf38294d3e83/virtualenv-15.1.0-py2.py3-none-any.whl#md5=aa7e5b86cc8cdb99794c4b99e8d670f3 (from https://pypi.python.org/simple/virtualenv/)
Installing collected packages: virtualenv

  changing mode of /home/manos/.local/bin/virtualenv to 755
Successfully installed virtualenv-15.1.0
Cleaning up...

Từ đầu ra, chúng ta có thể thấy rằng nó được cài đặt tại /home/manos/.local/bin/virtualenvvì vậy hãy đảm bảo PATH bao gồm điều đó.

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

Trong trường hợp của tôi, chúng ta có thể thấy rõ điều đó /home/manos/.local/binhoàn toàn bị thiếu và đó là lý do tại sao trình bao không thể tìm thấy chương trình.

Các giải pháp

Chúng ta có thể giải quyết điều này bằng nhiều cách:

  1. Chúng ta có thể cài đặt trực tiếp vào một thư mục cụ thể bằng cách thay đổi tùy chọn pip (không được đề xuất).
  2. Tạo symlink thích hợp tại /usr/local/binhoặc tương tự.
  3. Nối /home/manos/.local/binvào ĐƯỜNG.
  4. Cài đặt như sudo để cài đặt trực tiếp vào /usr/local/bin

Hai lựa chọn cuối cùng có lẽ là hợp lý nhất. Giải pháp cuối cùng là đơn giản nhất vì vậy tôi sẽ chỉ hiển thị giải pháp 3.

Thêm phần này vào ~ / .profile:

PATH="$PATH:$HOME/.local/bin"

Thoát ra và vào lại và nó sẽ hoạt động.


1
Điều này làm việc hoàn hảo. Nó phải là câu trả lời được chấp nhận và +1 cho lời giải thích chi tiết
David Lập trình viên

13

python3 -m virtualenv virtualenv_name

python -m virtualenv virtualenv_name


làm việc cho tôi mà không có 3. python -m virtualenv <name>
ofer.sheffer

11

Trong trường hợp của tôi, tôi đã chạy pip show virtualenvđể lấy thông tin về gói virtualenv. Tôi sẽ trông tương tự như thế này và cũng sẽ hiển thị vị trí của gói:

user@machine:~$ pip show virtualenv
Name: virtualenv
Version: 16.2.0
Summary: Virtual Python Environment builder
Home-page: https://virtualenv.pypa.io/
Author: Ian Bicking
Author-email: ianb@colorstudy.com
License: MIT
Location: /home/user/.local/lib/python3.6/site-packages
Requires: setuptools

Từ đó lấy một phần của vị trí cho đến .localphần, trong trường hợp này là /home/user/.local/. Bạn có thể tìm thấy lệnh virtualenv dưới /home/user/.local/bin/virtualenv.

Sau đó bạn có thể chạy các lệnh như /home/user/.local/bin/virtualenv newvirtualenv.


10

Tôi gặp vấn đề tương tự. Tôi đã sử dụng các bước sau để làm cho nó hoạt động

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

Thế là xong. Nó bắt đầu làm việc.

Sử dụng sudo -H----> sudo -H: đặt HOMEbiến để nhắm mục tiêu nhà của người dùng.


1
Nó khắc phục cho tôi một vấn đề tương tự ... tại sao nó không được kiểm tra như là giải pháp?
manuele

9

Bạn nói rằng mỗi khi bạn chạy, pip installbạn nhận được Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages. Những gì bạn cần làm là như sau:

  1. Thay đổi thư mục (chuyển đến thư mục nơi virtualenv.py) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  2. Nếu bạn làm một lsbạn sẽ thấy rằng kịch bản là cóvirtualenv.py
  3. Chạy đoạn script như thế này: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

Hi vọng điêu nay co ich. Lời khuyên của tôi sẽ là nghiên cứu venvs nhiều hơn. Đây là một tài nguyên tốt: https://www.dabapps.com/blog/int sinhtion-to-pip-and-virtualenv-python /


8

Tôi gặp rắc rối vì tôi đã sử dụng apt để cài đặt gói python-virtualenv. Để làm cho nó hoạt động tôi đã phải gỡ bỏ gói này apt-get remove python-virtualenvvà cài đặt nó với pip install virtualenv.


1
Điều này để lại câu hỏi: Tại sao ma quỷ là gói python3-virtualenv của tôi bị hỏng?
Dmitri DB

6

Đảm bảo rằng virtualenvcó thể thực hiện được.

Nếu virtualenvkhông tìm thấy, chạy đường dẫn đầy đủ ( /usr/local/bin/virtualenv) sẽ hoạt động.


5

Tôi nghĩ vấn đề của bạn có thể được giải quyết bằng một liên kết tượng trưng đơn giản , nhưng bạn đang tạo liên kết tượng trưng cho tệp sai . Theo như tôi biết virtualenv đã được cài đặt /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv, (bạn có thể thay đổi số cho phiên bản Python của mình), vì vậy lệnh tạo liên kết tượng trưng phải là:

ln -s /Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv /usr/local/bin/virtualenv

thiết lập liên kết sym là tất cả những gì tôi cần làm. cảm ơn bạn.
Kirby

5

Trên Ubuntu 18.4 khi cài đặt AWS với pip không hoạt động chính xác. Sử dụng apt-get install, vấn đề đã được giải quyết cho tôi.

sudo apt-get install python-virtualenv

và để kiểm tra

virtualenv --version

4

Cùng một vấn đề: Vì vậy, tôi chỉ làm pip uninstall virtualenv rồi pip install virtualenv

pip install virtualenv --user

Thu thập virtualenv bằng cách sử dụng bộ nhớ cache https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv- đã cài đặt.

Sau đó, tôi đã nhận được điều này:

Kịch bản virtualenv được cài đặt trong '/Users/brahim/L Library / Python2.7 / bin' không có trên PATH. Cân nhắc thêm thư mục này vào PATH hoặc, nếu bạn muốn loại bỏ cảnh báo này, hãy sử dụng --no-warn-script-location.

trong đó nói rõ nơi nó được cài đặt và phải làm gì để có được nó


2

Nếu bạn đang sử dụng Linux, hãy mở thiết bị đầu cuối của bạn và nhập virtualenv nửa chừng và tự động hoàn thành với phím tab. Nếu không có tự động hoàn tất cài đặt virtualenv trên hệ thống của bạn bằng cách chạy:

mycomp$sudo apt-get install virtualenv
//if you're already super user.
mycomp#apt-get install virtualenv

Bây giờ bạn có thể điều hướng đến nơi bạn muốn tạo dự án của mình và thực hiện:

myprj$pip3 install virtualenv    
//to install python 3.5 and above  
myprj$virtualenv venv --python=python3.5  
//to activate virtualenv  
(venv)myprj$source venv/bin/activate  
(venv)myprj$deactivate

Tôi đã nâng cấp lên python 3.7. Tôi tiếp tục cố gắng cài đặt virtualenv, nó sẽ luôn trả về "Lỗi: Không thể tìm thấy phiên bản thỏa mãn yêu cầu virtualenv (từ các phiên bản: none)". Tôi đã đọc ở đâu đó rằng từ một phiên bản python 3.x nào đó, nó được cài đặt virtualenv, nhưng cố gắng tạo một môi trường ảo đơn giản, không hoạt động, nó sẽ trả về lỗi mà nó không biết lệnh virtualenv. Nhưng nó đã làm việc với lệnh sau từ câu trả lời của bạn, "virtualenv venv --python = python3.7". Không có gì khác được thực hiện trước. Trong trường hợp nó giúp bất cứ ai khác. Môi trường MacOS.
CarmenA

1

cái này hoạt động trong Ubuntu 18 trở lên (không được thử nghiệm trong các phiên bản trước):

sudo apt install python3-virtualenv

0

Thực hiện theo các bước cơ bản để thiết lập env ảo

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/get-pip.py ~/.cache/pip

chúng tôi cần cập nhật ~/.bashrc

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

Các ~/.bashrctập tin chỉ đơn giản là một kịch bản shell mà Bash chạy bất cứ khi nào bạn khởi động một nhà ga mới. Bạn thường sử dụng tệp này để đặt các cấu hình khác nhau. Trong trường hợp này, chúng tôi đang thiết lập một biến môi trường được gọi WORKON_HOME để trỏ đến thư mục nơi môi trường ảo Python của chúng tôi sống. Sau đó chúng tôi tải bất kỳ cấu hình cần thiết từ virtualenvwrapper.

Để cập nhật ~/.bashrctệp của bạn chỉ cần sử dụng trình soạn thảo văn bản tiêu chuẩn, nano có thể dễ vận hành nhất. Một giải pháp đơn giản hơn là sử dụng lệnh cat và tránh hoàn toàn các trình soạn thảo:

echo -e "\n# virtualenv and virtualenvwrapper" >> ~/.bashrc
echo "export WORKON_HOME=$HOME/.virtualenvs" >> ~/.bashrc
echo "source /usr/local/bin/virtualenvwrapper.sh" >> ~/.bashrc

Sau khi chỉnh sửa tệp ~ / .bashrc, chúng tôi cần tải lại các thay đổi:

source ~/.bashrc

Bây giờ chúng ta đã cài đặt virtualenv và virtualenvwrapper, bước tiếp theo là thực sự tạo ra môi trường ảo Python - chúng ta thực hiện điều này bằng lệnh mkvirtualenv.

mkvirtualenv YOURENV

0

Đối với tôi, nó đã được cài đặt trong đường dẫn này (python 2.7 trên MacOS): $ HOME / Library / Python / 2.7 / bin


0

Tôi đang tham gia khóa học iOS trực tuyến của Angela Yu và tôi cũng gặp vấn đề tương tự, đồng thời bị cho phép từ chối lỗi 13 khi tôi đang cố chạy virtualenv --python=/{myPath} {newVirtualEnvName}

Tôi đã giải quyết nó bằng cách:

  1. chuyển sang người dùng sudo sudo su
  2. điều hướng đến thư mục đích của tôi (nơi tôi muốn env ảo mới của tôi sống) tức là. / Users / muUserName / Môi trường /
  3. chạy lệnh python -m virtualenv python27trong đó python27 là tên của môi trường ảo mới của tôi
  4. ở trên đã tạo thư mục pathon27 trong thư mục Môi trường của tôi , và sau đó tôi đã có thể chạy source python27/bin/activateđể khởi động virtualenv của mình

0

Câu trả lời đơn giản là nếu bạn không phải là người dùng sudo vì tôi không phải là một người. Bạn cần thêm đường dẫn của thư mục bin của bạn ( /home/myusername/.local/bin). Về cơ bản, dòng tìm kiếm trong đó đường dẫn này là lệnh mà bạn đã gõ.

export PATH=/home/b18150/.local/bin:/usr/bin:/bin

ở đây nó sẽ tìm kiếm local/binđầu tiên /usr/binvà sau đó /bin.


0

Tôi đã có cùng một vấn đề trong một thời gian dài. Tôi đã giải quyết nó bằng cách chạy hai lệnh này, đầu tiên là cài đặt thứ hai là kích hoạt env:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

Lưu ý rằng tôi đang sử dụng python3, bạn có thể thay đổi nó thành chỉ pythonkhi python3thất bại. Cảm ơn.


-3
apt update
apt upgrade
apt install ufw python virtualenv git unzip pv

3 lệnh và mọi thứ hoạt động!


Câu hỏi dành cho hệ điều hành mac, không cóapt
Matteo

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.