ไม่พบคำสั่ง Virtualenv


207

ฉันไม่virtualenvสามารถทำงานได้แม้จะพยายามหลายครั้ง ฉันติดตั้งvirtualenvบน MAC OS X โดยใช้:

pip install virtualenv

และได้เพิ่มPATHเข้าไปในของฉัน.bash_profileด้วย ทุกครั้งที่ฉันพยายามรันvirtualenvคำสั่งมันจะส่งคืน:

-bash: virtualenv: command not found

ทุกครั้งที่ฉันวิ่งpip install virtualenvมันจะกลับมา:

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

ฉันเข้าใจว่าใน mac virtualenvควรติดตั้งอย่างถูกต้อง

/usr/local/bin

virtualenvมีการติดตั้งจริงใน/usr/local/binแต่เมื่อใดก็ตามที่ฉันพยายามที่จะเรียกใช้virtualenvคำสั่งคำสั่งไม่พบ ฉันยังพยายามเรียกใช้virtualenvคำสั่งในไดเรกทอรี/usr/local/binและให้ผลลัพธ์เดียวกันกับฉัน:

-bash: virtualenv: command not found

นี่คือเส้นทางที่ฉันเพิ่มลงใน. bash_profile ของฉัน

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

มีวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่? ทำไมเป็นกรณีนี้


1
ลองเพิ่ม symlink ให้กับ virtualenv ที่สามารถเรียกใช้งานได้ใน / usr / local / bin
Justin Fay

ฉันจะสร้าง symlink ได้ที่ไหน มันยังไม่ทำงานแม้ฉันพยายามเพิ่ม symlink ที่ไดเรกทอรีที่ฉันต้องการใช้ virtualenv @justinfay
Arial

2
จากการดูที่เส้นทางข้างต้นนั้นอาจจะเป็นสิ่งที่ต้องการเปลี่ยนเส้นทางสุดท้ายในคำสั่งด้วยเส้นทางไปปฏิบัติการ virtualenv จริง:$ ln -s /usr/bin/virtualenv /Library/Framework/Python.framework/Version/2.7/lib/site-packages/virtualenv/virtualenv.py
จัสตินนางฟ้า

2
สิ่งที่ใช้ได้ผลสำหรับฉันคือการเพิ่ม symlinkln -s /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/virtualenv.py /usr/local/bin/virtualenv
Aliza

ไม่ทำงานใน lubuntu
c24b

คำตอบ:


336

หากคุณติดตั้งด้วย

pip install virtualenv

คุณต้องวิ่ง

sudo /usr/bin/easy_install virtualenv

ซึ่งทำให้มัน/usr/local/bin/มา

ไดเรกทอรีข้างต้นโดยเริ่มต้นควรจะอยู่ในของคุณPATH; มิฉะนั้นให้แก้ไข.zshrc(หรือ. bashrc) ของคุณตาม


1
ดีใจเสมอที่ได้ช่วย @nguns
Tal Avissar

บนอินสแตนซ์ AWS EC2 ด้วยAmazon Linuxหากคุณลองใช้ Let's Encrypt certbotลองแก้ปัญหานี้ นี่เป็นข้อเสนอแนะเดียวที่แก้ไขปัญหา virtualenv ของฉัน
emrahgunduz

2
คุณดีที่สุด!
leon wu

6
ผลลัพธ์คือsudo: /usr/bin/easy_install: command not found
Ced

2
ขอบคุณสำหรับสิ่งนี้ - แต่ฉันหวังว่าฉันจะรู้ว่าคาถาทำงานอะไรที่นี่ - "easy_install" ที่ pip ปกติไม่ทำอะไร? ie ทำไมจึงใช้งานได้
โทมัสคิมเบอร์

153

ฉันประสบปัญหาเดียวกันและนี่คือวิธีที่ฉันจะแก้ไข:

  1. ปัญหาเกิดขึ้นกับฉันเพราะฉันติดตั้ง virtualenv ผ่าน pip ในฐานะผู้ใช้ปกติ (ไม่ใช่รูท) pip ติดตั้งแพคเกจลงในไดเรกทอรี~/.local/lib/pythonX.X/site-packages
  2. เมื่อฉันวิ่ง pip เป็นรากหรือมีสิทธิ์ผู้ดูแลระบบ (sudo) /usr/lib/pythonX.X/dist-packagesก็ติดตั้งแพคเกจใน เส้นทางนี้อาจแตกต่างกันสำหรับคุณ
  3. คำสั่ง virtualenv ได้รับการยอมรับเฉพาะในสถานการณ์ที่สอง
  4. ดังนั้นเพื่อแก้ปัญหาให้ทำpip uninstall virtualenvแล้วติดตั้งใหม่ด้วยsudo pip install virtualenv(หรือติดตั้งเป็นรูท)

8
ฉันติดตามโซลูชันของคุณและได้รับข้อความ "... หากดำเนินการ pip ด้วย sudo คุณอาจต้องการ sudo's -H flag" ในที่สุด sudo -H pip pip ติดตั้ง virtualenv ทำงานให้ฉัน (บน OS X) ขอบคุณ
smudo78

1
จะทำอย่างไรถ้ารูทของคุณไม่สามารถใช้งานได้
user5359531

แก้ไขปัญหา ผมคิดว่าคนนี้สามารถไปลงใน dir --userโลกแทน

ปัญหานี้ยังเกิดขึ้นเมื่อติดตั้ง pip ใน ~ / .local / SOME_PATH ฉันcpแก้ไขทุกอย่างsite-packagesลงในไดเรกทอรีdir /usr/lib/pythonx.x/site-packagesและrm -rfสร้างไดเรกทอรีดั้งเดิม
ยุน

47

คำตอบที่ง่ายที่สุด แค่:

pip uninstall virtualenv

แล้ว:

pip install virtualenv

หรือคุณอาจติดตั้ง virtualenv ด้วยsudoในกรณีนั้น:

pip install --user virtualenv

ว้าว! นี่คือสิ่งที่หลอกลวงสำหรับฉัน ฉันใช้pyenvโดยวิธี
race_carr

นี่คือวิธีที่จะใช้สำหรับ Mac OS X โดยใช้การชง
TCSGrad

เคยต่อสู้กับมันมาหลายสัปดาห์และมันขัดขวางเวลาที่ จำกัด ของฉันในการทำงานในโครงการงูหลามและนี่เป็นทางออกเดียวที่จะทำงานกับฉันบน mac ได้ ขอบคุณ!
HellaDev

37

ใน Ubuntu 18.04 LTS ฉันก็พบข้อผิดพลาดเดียวกัน คำสั่งดังต่อไปนี้ทำงาน:

sudo apt-get install python-virtualenv

1
brew install python-virtualenvไม่มีอยู่
Leonard

ทำงานเหมือนเสน่ห์ในวันที่ 18.04 ของฉันขอบคุณ
Nischaya Sharma

โหวตลงเพื่อส่งเสริมการเป็นผู้สืบทอดไปยังapt apt-get
greybeard

24

ฉันมีปัญหาเดียวกันบนMac OS X El Capitan

เมื่อฉันติดตั้งvirtualenvเช่นที่sudo pip3 install virtualenvฉันไม่ได้virtualenvอยู่ภายใต้บรรทัดคำสั่งของฉัน

ฉันแก้ไขปัญหานี้โดยทำตามขั้นตอนเหล่านี้:

  1. ถอนการติดตั้งการติดตั้งก่อนหน้า
  2. เปลี่ยนเป็นบัญชีผู้ใช้ขั้นสูงก่อนการvirtualenvติดตั้งโดยการโทรsudo su
  3. ติดตั้งvirtualenvโดยโทรpip3 install virtualenv
  4. ในที่สุดคุณควรจะสามารถเข้าถึงได้virtualenvจากทั้งบัญชีuserและsuper user

15

ขบปัญหา

ลองติดตั้งด้วยการ--verboseตั้งค่าสถานะ

pip install virtualenv --verbose

ผลลัพธ์จะมีลักษณะเช่นนี้

  ..
  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...

จากผลลัพธ์ที่เราจะเห็นว่ามันติดตั้งที่/home/manos/.local/bin/virtualenvดังนั้นขอให้แน่ใจว่ารวมถึงเส้นทาง

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

ในกรณีของฉันเราจะเห็นได้ชัดว่า/home/manos/.local/binมันหายไปทั้งหมดและนั่นเป็นสาเหตุที่เชลล์ไม่สามารถหาโปรแกรมได้

โซลูชั่น

เราสามารถแก้ปัญหานี้ได้หลายวิธี:

  1. เราสามารถติดตั้งโดยตรงไปยังไดเรกทอรีเฉพาะโดยเล่นซอกับตัวเลือก pip (ไม่แนะนำ)
  2. สร้าง symlink ที่เหมาะสมที่/usr/local/binหรือคล้ายกัน
  3. ผนวก/home/manos/.local/binไปที่ PATH
  4. ติดตั้งเป็น sudo เพื่อติดตั้งโดยตรงกับ /usr/local/bin

ตัวเลือกสุดท้ายสองรายการน่าจะเหมาะสมที่สุด ทางออกสุดท้ายคือง่ายที่สุดดังนั้นฉันจะแสดงโซลูชัน 3

เพิ่มลงใน ~ / .profile:

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

ออกจากระบบและอีกครั้งและมันควรจะทำงาน


1
มันทำงานได้อย่างสมบูรณ์แบบ ควรเป็นคำตอบที่ได้รับการยอมรับและ +1 สำหรับคำอธิบายโดยละเอียด
David The Programmer


11

ในกรณีของฉันฉันวิ่งpip show virtualenvไปรับข้อมูลเกี่ยวกับแพ็คเกจ virtualenv ฉันจะคล้ายกับสิ่งนี้และจะแสดงตำแหน่งของแพ็คเกจ:

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

จากการคว้าที่เป็นส่วนหนึ่งของที่ตั้งขึ้นเพื่อการมีส่วนร่วมซึ่งในกรณีนี้คือ.local /home/user/.local/คุณสามารถค้นหาคำสั่ง virtualenv /home/user/.local/bin/virtualenvได้

/home/user/.local/bin/virtualenv newvirtualenvจากนั้นคุณสามารถเรียกใช้คำสั่งเช่น


10

ฉันมีปัญหาเดียวกัน ฉันใช้ขั้นตอนต่อไปนี้เพื่อทำให้มันใช้งานได้

sudo pip uninstall virtualenv

sudo -H pip install virtualenv

อย่างนั้นแหละ. มันเริ่มทำงาน

การใช้sudo -H----> sudo -H: ตั้งค่าHOMEตัวแปรเป็นเป้าหมายของผู้ใช้ที่บ้าน


1
มันแก้ไขปัญหาเดียวกันสำหรับฉัน exacly ... ทำไมมันไม่ได้ตรวจสอบเป็นวิธีการแก้ปัญหา?
นูเอล

9

คุณบอกว่าทุกครั้งที่คุณเรียกใช้ที่คุณได้รับpip install Requirement already satisfied (use --upgrade to upgrade): virtualenv in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packagesสิ่งที่คุณต้องทำมีดังต่อไปนี้:

  1. เปลี่ยน Directory (ไปที่ที่ virtualenv.py) cd /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
  2. หากคุณทำสิ่งที่lsคุณจะเห็นว่าสคริปต์อยู่ที่นั่นvirtualenv.py
  3. เรียกใช้สคริปต์เช่นนี้: python virtualenv.py --distribute /the/path/at/which/you/want/the/new/venv/at theNameOfTheNewVirtualEnv

หวังว่านี่จะช่วยได้ คำแนะนำของฉันคือการค้นคว้า venvs เพิ่มเติม นี่เป็นแหล่งข้อมูลที่ดี: https://www.dabapps.com/blog/introduction-to-pip-and-virtualenv-python/


8

ฉันมีปัญหาเพราะฉันใช้ apt เพื่อติดตั้งแพ็คเกจ python-virtualenv เพื่อให้มันทำงานผมต้องเอาแพคเกจนี้ด้วยและติดตั้งด้วยapt-get remove python-virtualenvpip install virtualenv


1
คำถามใด: ทำไมปีศาจถึงเป็นแพ็คเกจ python3-virtualenv ของฉันเสีย?
Dmitri DB

6

ตรวจสอบให้แน่ใจว่าvirtualenvสามารถใช้งานได้

หากvirtualenvไม่พบการรันเส้นทางแบบเต็ม ( /usr/local/bin/virtualenv) ควรใช้งานได้


5

ผมคิดว่าปัญหาของคุณสามารถแก้ไขได้โดยใช้ง่ายเชื่อมโยงสัญลักษณ์แต่คุณกำลังสร้างการเชื่อมโยงสัญลักษณ์ไปยังไฟล์ผิด เท่าที่ฉันรู้virtualenvติดตั้ง/Library/Frameworks/Python.framework/Versions/2.7/bin/virtualenv(คุณสามารถเปลี่ยนหมายเลขสำหรับรุ่น Python ของคุณ) ดังนั้นคำสั่งสำหรับการสร้างลิงค์สัญลักษณ์ควรจะ:

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

การตั้งค่าลิงค์ sym ทั้งหมดที่ฉันต้องทำ ขอบคุณ.
เคอร์บี้

5

ใน ubuntu 18.4 บนการติดตั้ง AWS ด้วย pip ไม่ทำงานอย่างถูกต้อง การใช้ apt-get install ปัญหาได้รับการแก้ไขสำหรับฉัน

sudo apt-get install python-virtualenv

และเพื่อตรวจสอบ

virtualenv --version

4

ปัญหาเดียวกัน: ดังนั้นฉันเพิ่งทำไปpip uninstall virtualenv แล้ว pip install virtualenv

pip install virtualenv --user

การจัดเก็บภาษีที่เก็บไว้ชั่วคราวใช้ virtualenv https://files.pythonhosted.org/packages/b6/30/96a02b2287098b23b875bc8c2f58071c35d2efe84f747b64d523721dc2b5/virtualenv-16.0.0-py2.py3-none-any.whl การติดตั้งแพคเกจที่เก็บรวบรวม: virtualenv

จากนั้นฉันได้สิ่งนี้:

สคริปต์ virtualenv ถูกติดตั้งใน '/Users/brahim/Library/Python/2.7/bin' ซึ่งไม่ได้อยู่ใน PATH พิจารณาการเพิ่มไดเรกทอรีนี้ลงใน PATH หรือหากคุณต้องการที่จะระงับคำเตือนนี้ให้ใช้ --no-warn-script-location

สิ่งที่ชัดเจนบอกว่าติดตั้งไว้ที่ไหนและจะทำอย่างไรเพื่อให้ได้มา


2

หากคุณใช้ Linux ให้เปิดเทอร์มินัลแล้วพิมพ์virtualenv halfway และเติมข้อความอัตโนมัติด้วยคีย์แท็บ หากไม่มี virtualenv ติดตั้งการทำให้สมบูรณ์อัตโนมัติบนระบบของคุณโดยการเรียกใช้:

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

ตอนนี้คุณสามารถนำทางไปยังตำแหน่งที่คุณต้องการสร้างโครงการและทำ:

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

ฉันอัพเกรดเป็น python 3.7 ฉันพยายามที่จะติดตั้ง virtualenv มันจะกลับมาเสมอ "ข้อผิดพลาด: ไม่พบรุ่นที่ตรงกับความต้องการ virtualenv (จากรุ่น: ไม่มี)" ฉันอ่านที่ไหนสักแห่งที่มาจาก python เวอร์ชั่น 3.x บางตัวมันมาพร้อมกับ virtualenv ที่ติดตั้ง แต่พยายามสร้างสภาพแวดล้อมเสมือนจริงที่เรียบง่ายใช้งานไม่ได้มันจะส่งคืนข้อผิดพลาดที่ไม่ทราบคำสั่ง virtualenv แต่มันทำงานกับคำสั่งต่อไปนี้จากคำตอบของคุณ "virtualenv venv --python = python3.7" ไม่มีอะไรทำมาก่อน ในกรณีที่ช่วยคนอื่น สภาพแวดล้อม MacOS
CarmenA

1

ใช้งานได้กับ Ubuntu 18 ขึ้นไป (ไม่ได้ทดสอบในเวอร์ชั่นก่อนหน้า):

sudo apt install python3-virtualenv

0

ทำตามขั้นตอนพื้นฐานเหล่านี้เพื่อติดตั้ง env เสมือน

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

เราจำเป็นต้องปรับปรุงของเรา ~/.bashrc

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

~/.bashrcไฟล์เป็นเพียงสคริปต์เชลล์ที่ทุบตีทำงานเมื่อใดก็ตามที่คุณเปิดขั้วใหม่ ปกติคุณจะใช้ไฟล์นี้เพื่อตั้งค่าการกำหนดค่าต่างๆ ในกรณีนี้เรากำลังตั้งค่าตัวแปรสภาพแวดล้อมที่เรียกว่าWORKON_HOME ให้ชี้ไปที่ไดเรกทอรีที่สภาพแวดล้อมเสมือน Python ของเรามีชีวิตอยู่ จากนั้นเราโหลดการกำหนดค่าที่จำเป็นจาก virtualenvwrapper

หากต้องการอัปเดต~/.bashrcไฟล์ของคุณเพียงใช้เครื่องมือแก้ไขข้อความมาตรฐานนาโนน่าจะใช้งานได้ง่ายที่สุด วิธีแก้ไขปัญหาที่ง่ายกว่าคือการใช้คำสั่ง cat และหลีกเลี่ยงการแก้ไขทั้งหมด:

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

หลังจากแก้ไขไฟล์ ~ / .bashrc ของเราเราต้องโหลดการเปลี่ยนแปลงอีกครั้ง:

source ~/.bashrc

ตอนนี้เราได้ติดตั้ง virtualenv และ virtualenvwrapper แล้วขั้นตอนต่อไปคือการสร้างสภาพแวดล้อมเสมือนจริงของ Python - เราทำสิ่งนี้โดยใช้คำสั่ง mkvirtualenv

mkvirtualenv YOURENV


0

ฉันกำลังทำหลักสูตร iOS ออนไลน์ของ Angela Yu และฉันได้รับปัญหาเดียวกันบวกกับการได้รับอนุญาตถูกปฏิเสธข้อผิดพลาด 13 เมื่อฉันพยายามเรียกใช้ virtualenv --python=/{myPath} {newVirtualEnvName}

ฉันแก้ไขมันโดย:

  1. เปลี่ยนเป็นผู้ใช้ sudo sudo su
  2. การนำทางไปยังโฟลเดอร์ปลายทางของฉัน (ที่ฉันต้องการให้ env เสมือนใหม่ของฉันมีชีวิต) เช่น / ผู้ใช้ / muUserName / สภาพแวดล้อม /
  3. รันคำสั่งpython -m virtualenv python27โดยที่python27เป็นชื่อของสภาพแวดล้อมเสมือนใหม่ของฉัน
  4. ด้านบนสร้างโฟลเดอร์pathon27ในโฟลเดอร์En Environmentของฉันจากนั้นฉันสามารถเรียกใช้source python27/bin/activateเพื่อเริ่ม virtualenv ของฉัน

0

คำตอบง่ายๆคือถ้าคุณไม่ใช่ผู้ใช้ sudo เหมือนฉันไม่ใช่คุณต้องเพิ่มพา ธ ของโฟลเดอร์ bin ของคุณ ( /home/myusername/.local/bin) ดังนั้นโดยทั่วไปบรรทัดคำสั่งจะค้นหาพา ธ เหล่านี้ซึ่งเป็นคำสั่งที่คุณพิมพ์

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

นี่มันจะค้นหาในlocal/binครั้งแรกนั้นแล้ว/usr/bin/bin


0

ฉันมีปัญหาเดียวกันมาเป็นเวลานาน ฉันแก้ไขมันด้วยการรันสองคำสั่งก่อนอื่นคือการติดตั้งที่สองคือการเปิดใช้งาน env:

python3 -m pip install virtualenv
python3 -m virtualenv yourenvname

โปรดทราบว่าฉันใช้python3คุณสามารถเปลี่ยนเป็นpythonหากpython3ล้มเหลว ขอบคุณ



โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.