virtualenv-SH แทน virtualenvwrapper เคารพ & nbsp; (ชุดของฟังก์ชั่นเปลือกเพื่อความสะดวกในการใช้งานของ virtualenv)
ความคิดเห็นพัฒนา
เช่นเดียวกับหลาย ๆ คนที่ผมเคยใช้ virtualenvwrapper สำหรับปี แต่ก็ยังมีอากาศบิตหนักเมื่อเวลาผ่านไป ในที่สุดผมพบว่าตัวเองรอนานเกินไปสำหรับเปลือกหอยใหม่ที่จะเริ่มต้นขึ้นแม้ว่าฉันมีแนวโน้มที่จะใช้เพียงคุณสมบัติพื้นฐาน
โครงการนี้เป็นความพยายามที่จะแก้ปัญหาที่ ผมยืมบิตฉลาดของ virtualenvwrapper ทิ้งทุกอย่างที่ฉันถือว่าแพงหรือเพียงแค่ไม่น่าสนใจและเพิ่มคุณลักษณะหรือสองของตัวเอง จำนวนหนึ่งความสำคัญของโครงการนี้คือความเร็ว รหัสเกือบเชลล์สคริปต์บริสุทธิ์แม้ว่าอาจจะมีหนึ่งหรือสองสวดของเครื่องมือมาตรฐานเช่น grep หรือ sed
ถูกเตือนว่าการดำเนินการนี้อาจจะไม่ได้สำหรับคุณ ผมอาจจะมีอากาศกำจัดคุณลักษณะที่คุณชอบอย่างใดอย่างหนึ่งเพราะมันเป็นราคาแพงหรือเพราะผมก็ไม่ได้สนใจเกี่ยวกับเรื่องนี้ ฉันอาจจะทิ้งโดยบังเอิญมีวิธีแก้ปัญหาสำหรับสภาพแวดล้อมบางอย่างที่ผมยังไม่ได้พบ ผมอาจจะแนะนำเพียงข้อบกพร่องใหม่ (เปลือกเป็นภาษาที่ง่ายที่จะได้รับไม่ถูกต้องในรูปแบบที่ลึกซึ้ง) การดำเนินการที่มีความเสี่ยงของคุณเอง
การติดตั้ง
virtualenv-SH สามารถติดตั้งได้กับจุดหรือ easy_install ที่จะใช้มันคุณจะต้องไปยังแหล่งเชลล์สคริปต์เดียวในสภาพแวดล้อมที่เปลือกของคุณ โดยค่าเริ่มต้นหรือจุด easy_install ควรติดตั้ง / usr / local / bin หากคุณใช้ทุบตีหรือ zsh คุณควรนำเข้าเชลล์สคริปต์เฉพาะ; มิฉะนั้นคุณสามารถลองหนึ่งทั่วไป เพิ่มหนึ่งต่อไปนี้เพื่อสคริปต์ init เปลือกของคุณ (.bashrc, .zshrc ฯลฯ ):
. /usr/local/bin/virtualenv-sh.bash
. /usr/local/bin/virtualenv-sh.zsh
. /usr/local/bin/virtualenv-sh.sh
ไม่มีอะไรที่จะต้อง มีเพียงหนึ่งตัวแปรสภาพแวดล้อมที่คุณสามารถใช้สำหรับการตั้งค่าซึ่งเป็น WORKON_HOME นี่คือเส้นทางไปเก็บของ virutalenvs; คุณสามารถปล่อยให้มันว่างเปล่าที่จะยอมรับการเริ่มต้นของ $ {หน้าแรก} /. virtualenvs สันนิษฐานว่าเป็น virtualenv ตัวเองเป็นในเส้นทางของคุณ
WORKON_HOME = $ {หน้าแรก} /. virtualenvs
zsh
หากคุณใช้ zsh คุณสามารถใช้แทนข้อมูลที่เก็บฟังก์ชัน precompiled เพื่อประสิทธิภาพสูงสุดแม้ว่าเรื่องนี้จะต้องมีการรวบรวมจากแหล่งที่มาในเครื่องของคุณ คุณสามารถดาวน์โหลดแหล่งที่มาโดยตรงหรือลอง:
PIP ติดตั้ง --upgrade --no-ติดตั้ง virtualenv-SH
สร้าง cd / virtualenv-SH
sudo ให้ติดตั้ง
นี้จะได้พบกับ zsh ในเส้นทางของคุณใช้มันเพื่อรวบรวม virtualenv-sh.zwc และติดตั้ง / usr / local / bin ขณะนี้คุณสามารถ AutoLoad ฟังก์ชันเหล่านี้และเริ่มต้น virtualenv-SH คุณอาจต้องการที่จะดูที่ส่วนบน autoloading ฟังก์ชั่นในคู่มือการ zsh ถ้าคุณไม่คุ้นเคยกับกระบวนการนี้
# กำหนดค่าทุกฟังก์ชั่ virtualenv-SH สำหรับ autoloading
fpath = (/ usr / local / bin / virtualenv-SH $ fpath)
AUTOLOAD -w / usr / local / bin / virtualenv-SH
# โทรฟังก์ชั่นเริ่มต้นที่สำคัญ
virtualenv_sh_init
การใช้
คำสั่งพื้นฐานของ virtualenv-SH เป็นหลักเช่นเดียวกับ virtualenvwrapper นี่คือสรุปสั้น ๆ :
& nbsp; mkvirtualenv
& nbsp; สร้าง virtual_env ใหม่ใน $ WORKON_HOME ข้อโต้แย้งทั้งหมดจะถูกส่งโดยตรงไปยัง virtualenv virtual_env ใหม่จะกลายเป็นที่ใช้งาน ซึ่งแตกต่างจาก virtualenvwrapper นี้จะใช้เวลาการขัดแย้งเพิ่มเติมไม่มี
& nbsp; rmvirtualenv
& nbsp; ลบ virtual_env ที่มีอยู่ หาก virtual_env นี้มีการใช้งานในขณะนี้ก็จะปิดการใช้งานเป็นครั้งแรกที่ได้รับความอนุเคราะห์
& nbsp; workon [
& nbsp; เปิดใช้งานการตั้งชื่อ virtual_env หาก virtual_env อื่นมีการใช้งานก็จะมีการปิดการใช้งานครั้งแรก โดยไม่ขัดแย้งก็จะแสดงรายการ virtual_envs ใช้ได้
& nbsp; autoworkon
& nbsp; โดยอัตโนมัติกำหนด virtual_env ขึ้นอยู่กับไฟล์พิเศษ ดูด้านล่าง
& nbsp; ยกเลิกการใช้งาน
& nbsp; ไม่ใช้งาน virtual_env ปัจจุบัน (ที่เมื่อใช้ virtualenv โดยตรง)
& nbsp; lsvirtualenvs
& nbsp; พิมพ์รายชื่อของ virtual_envs ที่คุณสร้างขึ้น
& nbsp; cdvirtualenv [subdir]
& nbsp; เปลี่ยนไดเรกทอรีปัจจุบันไปยังรากของ virtual_env ใช้งานหรือไดเรกทอรีย่อยดังกล่าว
& nbsp; lssitepackages
& nbsp; รายการเนื้อหาของไดเรกทอรีแพคเกจเว็บไซต์ virtual_env ที่ใช้งาน
& nbsp; cdsitepackages [subdir]
& nbsp; เปลี่ยนไดเรกทอรี currect ไปยังไดเรกทอรีแพคเกจที่เว็บไซต์ของ virtual_env ใช้งานหรือไดเรกทอรีย่อยดังกล่าว
ตะขอ
virtualenv-SH สนับสนุนเดียวกันทั่วโลกและท้องถิ่น (ต่อ env) ตะขอเป็น virtualenvwrapper ตะขอทั่วโลกเป็นไฟล์ใน $ WORKON_HOME; ตะขอท้องถิ่นไฟล์ใน $ WORKON_HOME / {virtual_env} / bin ตะขอจะดำเนินการโดยการจัดหาพวกเขาในบริบทเปลือกปัจจุบัน
& nbsp; เริ่มต้น (ทั่วโลก)
& nbsp; เรียกว่าในตอนท้ายของ virtualenv_sh_init
& nbsp; premkvirtualenv, postmkvirtualv, prermvirtualenv, postmkvirtualenv (ทั่วโลก)
& nbsp; เรียกว่าที่จุดเริ่มต้นและจุดสิ้นสุดของ mkvirtualenv และ rmvirtualenv
& nbsp; preactivate, postactivate (ทั่วโลก, ท้องถิ่น); predeactivate, postdeactivate (ท้องถิ่นทั่วโลก)
& nbsp; เรียกว่าอยู่ในลำดับที่ระบุรอบยืนยันการใช้งานและการเสื่อมของ virtual_env
นอกจากนี้ virtualenv-SH ช่วยให้คุณสามารถลงทะเบียนแบบไดนามิกฟังก์ชั่นที่จะเรียกว่าเมื่อมีการดำเนินตะขอ:
virtualenv_sh_add_hook
virtualenv_sh_remove_hook
e.g .:
my_virtualenv_cleanup ()
{
& nbsp; # ทำสิ่งบางอย่างที่นี่
}
virtualenv_sh_add_hook postdeactivate my_virtualenv_cleanup
ฟังก์ชั่นเบ็ดที่ลงทะเบียนจะดำเนินการเสมอหลังจากสคริปต์ตะขอทั่วโลกและในประเทศทั้งหมด
autoworkon
autoworkon เป็นคำสั่งใหม่ที่ถูกออกแบบมาเพื่อการปรับปรุงโดยอัตโนมัติ virtual_env ของคุณขึ้นอยู่กับไดเรกทอรีปัจจุบันของคุณ โปรดทราบว่าไม่มีกลไกที่เปลือกมาตรฐานสำหรับการใช้งานฟังก์ชั่นเมื่อมีการเปลี่ยนแปลงไดเรกทอรีปัจจุบัน - และเปลือกหอยจำนวนมากไม่ได้มีกลไกดังกล่าว - เพื่อให้การติดตั้งนี้ขึ้นอยู่กับคุณ หากคุณใช้ zsh คุณจะใช้:
AUTOLOAD -u add-zsh เบ็ด
เพิ่ม zsh เบ็ด chpwd autoworkon
ฟังก์ชั่น autoworkon จะเดินขึ้นระบบแฟ้มจากไดเรกทอรีปัจจุบันจนกว่าจะถึงทั้งรากหรือพบรายการชื่อ ".workon" หากเป็นไฟล์ที่สามารถอ่านได้ก็จะรักษาบรรทัดแรกเป็นชื่อของ virtual_env และเปิดใช้งานได้ มีคู่ของกฎพิเศษที่จะเก็บไว้ในใจคือ
- autoworkon เสมอหยุดที่ .workon แรกที่พบ มันเป็นเรื่องที่เหมาะสมอย่างสมบูรณ์แบบที่จะมีไฟล์ .workon หลายจุดในต้นไม้ไดเรกทอรีที่จะใช้ virtual_envs ที่แตกต่างกันในระดับที่แตกต่างกัน
- ไฟล์ .workon ว่างเปล่าหรืออ่านไม่ได้ถูกตีความว่าเป็น "ไม่ virtual_env" นี้จะเป็นประโยชน์ถ้าคุณต้องการที่จะยกเลิกการใช้งาน virtual_env อัตโนมัติในทรีย่อยโดยเฉพาะอย่างยิ่ง
- ถ้าคุณเปิดใช้งาน virtual_env ตนเอง autoworkon จะไม่แทนที่มัน . autoworkon จะเปลี่ยน virtual_env ใช้งานของคุณถ้ามันเป็นล้างหรือถูกตั้งก่อนหน้าโดย autoworkon
ต้องการ
- หลาม
ความคิดเห็นที่ไม่พบ