วิธีการเปิดใช้งาน virtualenv?


235

ฉันผ่านการค้นหาและทดลองใช้ทางเลือกต่าง ๆ โดยไม่ประสบความสำเร็จและใช้เวลาหลายวันในตอนนี้ - ทำให้ฉันเป็นบ้า

ทำงานบน Red Hat Linux กับ Python 2.5.2 เริ่มใช้ Virtualenv ล่าสุด แต่ไม่สามารถเปิดใช้งานได้ฉันพบว่ามีบางรุ่นที่แนะนำรุ่นก่อนหน้านี้ที่จำเป็นดังนั้นฉันจึงใช้ Virtualenv 1.6.4 ตามที่ควรจะใช้กับ Python 2.6

ดูเหมือนว่าจะติดตั้งสภาพแวดล้อมเสมือนจริง

[necrailk@server6 ~]$ python virtualenv-1.6.4/virtualenv.py virtual
New python executable in virtual/bin/python
Installing setuptools............done.
Installing pip...............done.

สภาพแวดล้อมดูโอเค

[necrailk@server6 ~]$ cd virtual
[necrailk@server6 ~/virtual]$ dir
bin  include  lib

พยายามเปิดใช้งาน

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

ตรวจสอบ chmod

[necrailk@server6 ~/virtual]$ cd bin
[necrailk@server6 bin]$ ls -l
total 3160
-rw-r--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r-

ปัญหาดังนั้นฉันเปลี่ยนมัน

[necrailk@server6 bin]$ ls -l
total 3160
-rwxr--r--    1 necrailk biz12        2130 Jan 30 11:38 activate
-rw-r--r--    1 necrailk biz12        1050 Jan 30 11:38 activate.csh
-rw-r--r--    1 necrailk biz12        2869 Jan 30 11:38 activate.fish
-rw-r--r--    1 necrailk biz12        1005 Jan 30 11:38 activate_this.py
-rwxr-xr-x    1 necrailk biz

ลองactivateใหม่อีกครั้ง

[necrailk@server6 ~/virtual]$ . bin/activate
/bin/.: Permission denied.

ยังไม่มีความสุข ...


6
คุณเคยลอง "source ~ / virtual / bin / enable" แล้วหรือยัง?
mmbrian

4
จากไดเรกทอรีของสภาพแวดล้อมของคุณทำ. bin/activateและควรจะทำงานได้ดี
dansalmo

1
ฉันคิดว่าคุณเพียงแค่ต้องใช้sourceคำสั่งเช่นsource bin/activate
Hack-R

1
ฉันคิดว่าคุณต้องทำเช่นนี้จากไดเรกทอรี virtualenv เพื่อแรกcd ~/.virtualenvs/*environmentname*แล้วsource ~/.virtual/bin/activate
11m0

คำตอบ:


311

นี่คือขั้นตอนการทำงานของฉันหลังจากสร้างโฟลเดอร์และcdเข้าสู่:

$ virtualenv venv --distribute
New python executable in venv/bin/python
Installing distribute.........done.
Installing pip................done.
$ source venv/bin/activate
(venv)$ python

4
ตกลงลองใช้วิธีนี้ไม่ดีใจ [necrailk @ server6 ~ / virtual] $ cd [necrailk @ server6 ~] $ $ แหล่งเสมือน / bin / เปิดใช้งานแหล่งที่มา: ตัวแปรที่ไม่ได้กำหนด [necrailk @ server6 ~] $ sh virtual / bin / เปิดใช้งาน [necrailk @ server6 ~] $
larry

8
อย่าพิมพ์$ตัวอักษรซึ่ง ii [necrailk@server6 ~]$ $sourceลักษณะเช่นคุณได้ที่นี่: $ใช้เพื่อระบุพรอมต์คำสั่ง
Justin Garrick

3
ยังคงได้รับข้อผิดพลาด () วางผิดพลาด ... จะทำอย่างไร?

2
ข้อผิดพลาดเดียวกันที่นี่ :( ผู้ใช้ @ mintdesk ~ / python_v $ venv / bin / เปิดใช้งานทุบตี: venv / bin / เปิดใช้งาน: ปฏิเสธการอนุญาต
Rui Lima

1
อีกทางเลือกหนึ่งในการพิมพ์ 'แหล่งที่มา' ตลอดเวลาคือการใช้ '.':$ . venv/bin/activate
karwag

89

คุณลืมที่จะทำsource bin/activateแหล่งที่มาเป็นชื่อที่ปฏิบัติการได้ หลงฉันสองสามครั้งแรกเช่นกันง่ายต่อการคิดว่าคู่มือกำลังบอกว่า "ดำเนินการสิ่งนี้จากรูทของโฟลเดอร์สภาพแวดล้อม"

ไม่จำเป็นที่จะทำให้การปฏิบัติการผ่านactivatechmod


4
OP พิมพ์. bin/activateแล้ว หมายเหตุซึ่งเป็นคำพ้องสำหรับ. source
โทมัส

1
"source เป็นชื่อที่ปฏิบัติการได้" ... cmd.exe? powershell.exe?
StingyJack

1
ฉันพยายามที่จะเปิดใช้งานสภาพแวดล้อมจาก cron และมันจะไม่ทำงานหากไม่สามารถใช้งานได้ (chmod 755)
Tahlor

70

คุณทำได้

source ./python_env/bin/activate

หรือเพียงแค่ไปที่ไดเรกทอรี

cd /python_env/bin/

แล้ว

source ./activate

โชคดี.


27

ซีดีไปยังเส้นทางสภาพแวดล้อมไปที่โฟลเดอร์ช่องเก็บ ณ จุดนี้เมื่อคุณใช้คำสั่ง ls คุณจะเห็นไฟล์ "เปิดใช้งาน"

ตอนนี้พิมพ์

source activate

23

ไปที่ไดเรกทอรีโครงการ ในกรณีของฉันmicroblogคือไดเรกทอรีโครงการขวดและภายใต้microblogไดเรกทอรีควรมีappและvenvโฟลเดอร์ จากนั้นเรียกใช้คำสั่งด้านล่างนี้เป็นหนึ่งสำหรับฉันใน Ubuntu

source venv/bin/activate

ป้อนคำอธิบายรูปภาพที่นี่


17

ปัญหาที่เกิดขึ้นคือ/bin/.คำสั่ง มันแปลกจริง ๆ ตั้งแต่ ควรจะเชื่อมโยงไปยังไดเรกทอรีมันอยู่ในได้. (สุจริตเว้นแต่.เป็นนามแฝงแปลกหรือฟังก์ชั่นผมไม่ได้เห็นว่าเป็นไปได้.) นอกจากนี้ยังเป็นที่ผิดปกติเล็ก ๆ น้อย ๆ ที่เปลือกของคุณไม่ได้มีในตัวสำหรับ. source

การแก้ไขอย่างรวดเร็วหนึ่งอย่างคือเรียกใช้ virtualenv ในเชลล์ที่แตกต่างกัน (ข้อได้เปรียบที่สองอย่างชัดเจนคือการที่deactivateคุณไม่สามารถทำได้exit)

/bin/bash --rcfile bin/activate

หากเชลล์ของคุณรองรับคุณอาจมีsourceคำสั่งที่ไม่เป็นมาตรฐานซึ่งควรทำสิ่งเดียวกันกับ.แต่อาจไม่มีอยู่ (ทั้งหมดบอกว่าคุณควรพยายามหาสาเหตุว่าทำไมสภาพแวดล้อมของคุณแปลกหรือมันจะทำให้คุณเจ็บปวดอีกในอนาคต)

อย่างไรก็ตามคุณไม่จำเป็นต้องใช้chmod +xไฟล์เหล่านั้น เฉพาะไฟล์จะต้องปฏิบัติการถ้าคุณต้องการที่จะดำเนินการได้โดยตรง ในกรณีนี้คุณกำลังพยายามเปิดใช้พวกเขา.ดังนั้นพวกเขาจึงไม่ต้องการมัน


2
นอกจากนี้คุณควรจะมาไม่ได้bin/activate .bin/activateอาจทำงานด้วยในตอน.นั้น ...
krlmlr

@ krlmlr จริงฉันคิดว่านั่นเป็นตัวพิมพ์ผิดเนื่องจากในบรรทัดถัดไปที่เขาcdเข้าbinมา
kojiro

1
สวัสดี [necrailk @ server6 ~ / virtual] $ source bin / เปิดใช้งานวางไม่ดี () [necrailk @ server6 ~ / virtual] $
larry

2
korjiro - คุณถูกต้อง - ฉันไม่จำเป็นต้องค้นหาว่าทำไมสภาพแวดล้อมจึงแปลก - มันกลับกลายเป็นการใช้งานทุบตีที่ไม่ได้มาตรฐาน - การเปลี่ยนไปใช้ทุบตีมาตรฐานแก้ปัญหาทั้งหมดได้
larry

@larry ดีใจที่ได้ผล: อย่าลืมทำเครื่องหมายคำตอบว่าถูกต้อง
kojiro

17

$ mkdir <YOURPROJECT> สร้างโครงการใหม่

$ cd <YOURPROJECT> เปลี่ยนไดเรกทอรีเป็นโครงการนั้น

$ virtualenv <NEWVIRTUALENV> สร้าง virtualenv ใหม่

$ source <NEWVIRTUALENV>/bin/activate เปิดใช้งาน virtualenv ใหม่นั้น



9

สำหรับ Windows คุณสามารถดำเนินการดังนี้:

วิธีสร้าง env เสมือนเป็น: virtualenv envName –python = python.exe (หากไม่ได้สร้างตัวแปรสภาพแวดล้อม)

ในการเปิดใช้งาน env เสมือน:> \ path \ to \ envName \ Scripts \ activate

ในการปิดใช้งาน env เสมือน:> \ path \ to \ env \ Scripts \ deactivate

ใช้งานได้ดีกับงูหลามเวอร์ชั่นใหม่


หากต้องการเพิ่มรายละเอียดที่ชัดเจนให้กับสิ่งนี้: เมื่อคุณสร้างสภาพแวดล้อมเสมือนจริงของคุณด้วยvirtualenv venv ตนเองจากนั้นไปที่โฟลเดอร์สคริปต์ที่สร้างขึ้นเพื่อดูไฟล์คุณจะเห็นไฟล์เปิดใช้งานบางไฟล์ นั่นคือที่เราเปิดใช้งานสำหรับ Windows ดังนั้นcdในโฟลเดอร์สคริปต์ของคุณและพิมพ์. activateลงในบรรทัดคำสั่งของคุณ (โปรดรวมช่องว่างหลังจากช่วงเวลา) คุณจะสังเกตเห็นเส้นทางของคุณในการเปลี่ยนแปลงบรรทัดคำสั่งโดยการเพิ่ม (venv) ไปที่จุดเริ่มต้นของเส้นทางของคุณ ซึ่งหมายความว่าเปิดใช้งานแล้ว
Azurespot

6
source virtualen_name/bin/activate

รหัส


4
คำตอบนี้มีให้แล้ว (พร้อมข้อมูลเพิ่มเติม) ในคำตอบที่มีอยู่ เมื่อตอบคำถามเก่าด้วยคำตอบโปรดตรวจสอบให้แน่ใจว่าคำตอบของคุณมีส่วนช่วยอะไรใหม่หรือมีคุณภาพสูงกว่าคำตอบที่มีอยู่
Mark Rotteveel

4

ฉันจะแนะนำ virtualenvwrapper เช่นกัน มันเป็นสิ่งมหัศจรรย์สำหรับฉันและฉันมีปัญหากับการเปิดใช้งาน http://virtualenvwrapper.readthedocs.org/en/latest/


สวัสดีแหล่งที่มาและ (จุด) ดูเหมือน necrailk @ server6 ~ / virtual] ถังขยะ $ ต้นทาง / เปิดใช้งานวางไม่ดี () ดูเหมือนว่าจะไม่ทำงาน
larry

สิทธิ์การใช้งาน bin ของฉัน: drwxrwxr-x 2 erika erika 4096 2013-01-24 14:37 bin /
Erika

ตาม docs virtuallenvwrapper ปัจจุบันยังไม่ได้ทดสอบสำหรับ python2.5 ดังนั้นจึงไม่สะดวกที่จะเพิ่มปัญหาที่เป็นไปได้ของฉัน
larry

เพียงบทสรุป ค้นพบว่าโฮสต์ของฉันใช้เชลล์ที่ไม่ได้มาตรฐาน เมื่อเปลี่ยนเป็น Bash ปกติทุกอย่างทำงานได้ตามที่ควร ตอนนี้แสดง env เสมือนจริงในพร้อมต์และพา ธ ทั้งหมดถูกแก้ไขตาม ขอบคุณมากสำหรับความช่วยเหลือและคำแนะนำ
รี่

3

<Your Env _name >:สร้างสภาพแวดล้อมของคุณเองหลามเสมือนจริงที่เรียกว่า ฉันให้ VE

git clone https://github.com/pypa/virtualenv.git
python virtualenv.py VE

หากต้องการเปิดใช้งานสภาพแวดล้อมเสมือนใหม่ของคุณให้เรียกใช้ ( สังเกตว่าไม่./อยู่ที่นี่ ):

. VE/bin/activate

เอาท์พุทตัวอย่าง ( เปลี่ยนข้อความแจ้ง ):

(VE)c34299@a200dblr$

เมื่อตั้งค่าสภาพแวดล้อมเสมือนของคุณคุณสามารถลบVirtualenvrepo


2
คุณไม่ควรตรวจสอบสาขาหลักของ virtualenv และคาดว่ามันจะใช้งานได้จริง ใช้เวอร์ชันที่ติดแท็กแทน
Jon Bringhurst

3

บน Mac เปลี่ยนเชลล์เป็น BASH (โปรดทราบว่า env เสมือนใช้งานได้ในเชลล์เชลล์เท่านั้น)

[user@host tools]$. venv/bin/activate 

.: Command not found.

[user@host tools]$source venv/bin/activate

Badly placed ()'s.

[user@host tools]$bash

bash-3.2$ source venv/bin/activate

(venv) bash-3.2$ 

บิงโกมันใช้งานได้ ดูการเปลี่ยนแปลงที่พรอมต์

บน Ubuntu:

user@local_host:~/tools$ source toolsenv/bin/activate

(toolsenv) user@local_host~/tools$ 

หมายเหตุ: เปลี่ยนพรอมต์


2

ฉันมีปัญหาในการเรียกใช้ซอร์ส / bin / เปิดใช้งานจากนั้นฉันก็รู้ว่าฉันใช้ tcsh เป็นเทอร์มินัลเชลล์แทนการทุบตี เมื่อฉันเปลี่ยนฉันก็สามารถเปิดใช้งาน venv


1

Windows 10

ใน Windows ไดเรกทอรีเหล่านี้ถูกสร้างขึ้น:

ไดเรกทอรี Windows 10 Virtual Environment

เพื่อเปิดใช้งาน Virtual Environment ใน Windows 10

down\scripts\activate

ไดเรกทอรี \ scripts มีไฟล์เปิดใช้งาน

Linux Ubuntu

ใน Ubuntu ไดเรกทอรีเหล่านี้ถูกสร้างขึ้น:

ไดเร็กทอรี Linux Ubuntu Virtual Environment

เพื่อเปิดใช้งาน Virtual Environment ใน Linux Ubuntu

source ./bin/activate

ไดเรกทอรี / bin มีไฟล์เปิดใช้งาน


สภาพแวดล้อมเสมือนคัดลอกจาก Windows ไปเป็น Linux Ubuntu ในทางกลับกัน

หากโฟลเดอร์สภาพแวดล้อมเสมือนคัดลอกจาก Windows ไปยัง Linux Ubuntu จากนั้นอ้างอิงตามไดเรกทอรี:

source ./down/Scripts/activate

1

เรียกใช้รหัสนี้มันจะได้รับการเปิดใช้งานหากคุณใช้เครื่อง windows
source venv/Scripts/activate

ป้อนคำอธิบายรูปภาพที่นี่


0

อาจจะสายนิดหน่อยเพื่อโพสต์คำตอบของฉันที่นี่ แต่ฉันก็ยังโพสต์ แต่อาจเป็นประโยชน์ต่อบางคน

ฉันประสบปัญหาเดียวกัน

สาเหตุหลักที่ฉันสร้าง virtualenv ในฐานะผู้ใช้ "root" แต่ต่อมาพยายามเปิดใช้งานโดยใช้ผู้ใช้รายอื่น

chmod จะไม่ทำงานเนื่องจากคุณไม่ใช่เจ้าของไฟล์ดังนั้นทางเลือกคือใช้ chown (เพื่อเปลี่ยนความเป็นเจ้าของ)

สำหรับเช่น:

หากคุณสร้าง virtualenv ของคุณที่ / home / abc / ENV

จากนั้นซีดีถึง / home / abc

และเรียกใช้คำสั่ง: chown -Rv [ผู้ใช้กับผู้ที่คุณต้องการเปลี่ยนความเป็นเจ้าของ] [โฟลเดอร์ / ชื่อไฟล์ที่จำเป็นต้องเปลี่ยนความเป็นเจ้าของ]

ในตัวอย่างนี้คำสั่งจะเป็น: chown -Rv abc ENV

หลังจากเปลี่ยนความเป็นเจ้าของเรียบร้อยแล้วคุณสามารถเรียกใช้ซอร์ส /ENV/bin/./activateและคุณควรเปิดใช้งาน virtualenv ได้อย่างถูกต้อง


0

1- เปิด powershell และไปที่โฟลเดอร์แอปพลิเคชันของคุณ 2- ป้อนโฟลเดอร์ virtualenv ของคุณเช่น: cd. \ venv \ Scripts \ 3- virtualenv ที่ใช้งานอยู่ตามประเภท \ activ

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