คำถามติดแท็ก virtualenv

virtualenv เป็นเครื่องมือที่สร้างสภาพแวดล้อม Python แบบ sandboxed

15
วิธีที่เหมาะสมในการติดตั้ง pip, virtualenv และแจกจ่ายให้กับ Python คืออะไร
คำถามสั้น ๆ อะไรคือวิธีการที่เหมาะสมในการติดตั้งpip, virtualenvและdistribute? พื้นหลัง ในคำตอบของฉันไปดังนั้นคำถาม 4314376ผมแนะนำให้ใช้ez_setupเพื่อให้คุณแล้วสามารถติดตั้งpipและการvirtualenvดังนี้ curl -O http://peak.telecommunity.com/dist/ez_setup.py sudo python ez_setup.py sudo easy_install pip sudo pip install virtualenv ฉันได้ดึงคำแนะนำเหล่านี้จากโพสต์บล็อกของ Jesse Noller แล้วคุณต้องการใช้ Python บน Mac หรือไม่? . ผมชอบความคิดของการรักษาความสะอาดทั่วโลกไดเรกทอรีเว็บไซต์แพคเกจเพื่อให้แพคเกจอื่น ๆ เท่านั้นที่ผมติดตั้งมี และvirtualenvwrapper distribute(ฉันเพิ่งเพิ่มลงdistributeในกล่องเครื่องมือของฉันเนื่องจากการประกาศการบริการสาธารณะ Python นี้เมื่อต้องการติดตั้งสองแพ็คเกจนี้ฉันใช้: sudo pip install virtualenvwrapper curl -O http://python-distribute.org/distribute_setup.py sudo python distribute_setup.py ไม่มี setuptools และ easy_install …

10
ไม่พบคอมไพเลอร์ C ที่ยอมรับได้ใน $ PATH เมื่อติดตั้ง python
ฉันพยายามติดตั้งสภาพแวดล้อมหลามใหม่บนโฮสติ้งที่ใช้ร่วมกันของฉัน ฉันทำตามขั้นตอนที่เขียนในโพสต์นี้ : mkdir ~/src wget http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz tar -zxvf Python-2.7.1.tar.gz cd Python-2.7.1 mkdir ~/.localpython ./configure --prefix=/home/<user>/.localpython make make install หลังจากมาที่ "./configure --prefix = / home //. localpython" คำสั่งฉันได้รับผลลัพธ์ต่อไปนี้: checking for --enable-universalsdk... no checking for --with-universal-archs... 32-bit checking MACHDEP... linux3 checking EXTRAPLATDIR... checking machine type as reported by uname -m... x86_64 …

24
การอ้างอิงที่ไม่สมบูรณ์ใน Virtualenvs
ฉันเพิ่งติดตั้งเครือข่าย dotfiles บน Mac พร้อมกับแอปพลิเคชั่นอื่น ๆ (ฉันเปลี่ยนเป็น iTerm แทน Terminal และ Sublime เป็นโปรแกรมแก้ไขข้อความเริ่มต้นของฉัน) แต่ตั้งแต่นั้นมาสภาพแวดล้อมเสมือนทั้งหมดของฉันหยุดทำงานแม้ว่าโฟลเดอร์ภายใน ยังคงอยู่ที่นั่นและพวกเขาให้ข้อผิดพลาดต่อไปนี้เมื่อใดก็ตามที่ฉันพยายามเรียกใช้สิ่งใด ๆ ในพวกเขา: dyld: Library not loaded: @executable_path/../.Python Referenced from: /Users/[user]/.virtualenvs/modclass/bin/python Reason: image not found Trace/BPT trap: 5 ฉันได้ลบไฟล์ทั้งหมดที่เกี่ยวข้องกับ dotfiles และกู้คืน. bash_profile ของฉันกลับไปเป็นเหมือนเดิม แต่ปัญหายังคงอยู่ มีวิธีใดในการวินิจฉัยปัญหาหรือแก้ไขในวิธีที่ง่าย ๆ (เช่นไม่ต้องการสร้าง virtualenv ทั้งหมดอีกครั้ง)

18
วิธีการเปิดใช้งาน virtualenv?
ฉันผ่านการค้นหาและทดลองใช้ทางเลือกต่าง ๆ โดยไม่ประสบความสำเร็จและใช้เวลาหลายวันในตอนนี้ - ทำให้ฉันเป็นบ้า ทำงานบน 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]$ …
235 python  linux  virtualenv 

9
Cron และ virtualenv
ฉันพยายามเรียกใช้คำสั่งการจัดการ Django จาก cron ฉันกำลังใช้ virtualenv เพื่อให้โครงการของฉันแซนด์บ็อกซ์ ฉันได้เห็นตัวอย่างที่นี่และที่อื่น ๆ ที่แสดงคำสั่งการจัดการจากภายใน virtualenv ชอบ: 0 3 * * * source /home/user/project/env/bin/activate && /home/user/project/manage.py command arg อย่างไรก็ตามแม้ว่า syslog จะแสดงรายการเมื่องานควรเริ่มทำงาน แต่งานนี้จะไม่ทำงานจริง ๆ (ไฟล์บันทึกสำหรับสคริปต์นั้นว่างเปล่า) ถ้าฉันเรียกใช้บรรทัดด้วยตนเองจากเปลือกมันทำงานตามที่คาดไว้ วิธีเดียวที่ฉันสามารถรับคำสั่งให้ทำงานผ่าน cron ในขณะนี้คือการแบ่งคำสั่งและวางไว้ในสคริปต์ bash wrapper: #!/bin/sh source /home/user/project/env/bin/activate cd /home/user/project/ ./manage.py command arg แก้ไข: ars เกิดขึ้นพร้อมชุดคำสั่งที่ใช้งานได้: 0 3 * * …

7
วิธีถอนการติดตั้งแพ็คเกจที่ติดตั้งด้วย pip install --user
มี--userตัวเลือกสำหรับ pip ซึ่งสามารถติดตั้งแพ็คเกจ Python ต่อผู้ใช้: pip install --user [python-package-name] ฉันใช้ตัวเลือกนี้เพื่อติดตั้งแพ็กเกจบนเซิร์ฟเวอร์ที่ฉันไม่สามารถเข้าถึงรูทได้ สิ่งที่ฉันต้องการตอนนี้คือการถอนการติดตั้งแพ็คเกจที่ติดตั้งบนผู้ใช้ปัจจุบัน ฉันพยายามรันคำสั่งนี้: pip uninstall --user [python-package-name] แต่ฉันได้: no such option: --user ฉันจะถอนการติดตั้งแพ็กเกจที่ฉันติดตั้งด้วยpip install --userนอกเหนือจากการค้นหาและลบแพ็คเกจด้วยตนเองได้อย่างไร ฉันพบบทความนี้แล้ว pip ไม่สามารถถอนการติดตั้งจากไดเรกทอรีไซต์แพคเกจต่อผู้ใช้ ซึ่งอธิบายว่าการถอนการติดตั้งแพคเกจจากไดเรกทอรีผู้ใช้ไม่รองรับ อ้างอิงจากบทความถ้ามันถูกนำไปใช้อย่างถูกต้องแล้วด้วย pip uninstall [package-name] แพ็คเกจที่ติดตั้งจะถูกค้นหาในไดเรกทอรีผู้ใช้ด้วย แต่ปัญหายังคงอยู่สำหรับฉัน จะทำอย่างไรถ้ามีการติดตั้งแพ็คเกจเดียวกันทั้งระบบและต่อผู้ใช้ เกิดอะไรขึ้นถ้ามีคนต้องการกำหนดเป้าหมายไดเรกทอรีผู้ใช้เฉพาะ

4
ทำให้ virtualenv สืบทอดแพคเกจเฉพาะจากแพคเกจไซต์ส่วนกลางของคุณ
ฉันกำลังมองหาวิธีที่จะทำให้ virtualenv ซึ่งจะมีเพียงบางห้องสมุด (ซึ่งฉันเลือก) ของการติดตั้งหลามฐาน เพื่อเป็นรูปธรรมมากขึ้นฉันพยายามที่จะนำเข้า matplotlib ของฉันไปที่ virtualenv ในระหว่างการสร้าง virtualenv ไม่สามารถติดตั้งอย่างมีประสิทธิภาพด้วย pip หรือ easy_install เนื่องจากไม่มี libs คอมไพเลอร์บางตัว วิธีที่ฉันทำจนถึงตอนนี้คือการคัดลอกด้วยตนเอง /usr/lib/python2.7/dist-packages/ to virtualenv_name/lib/python2.7/dist-packages/ อย่างไรก็ตามสิ่งนี้จะช่วยป้องกันไม่ให้ลิงก์ที่นำเข้ามาเพื่อจัดการกับไข่แดง (ซึ่งพิมพ์ libs ที่มีอยู่ในปัจจุบันเป็น virtualenv ทั้งหมด) ดังนั้นมีวิธีทำตัวแปรที่เลือกของ virtualenv --system-site-packages
208 python  virtualenv 

24
ไม่พบคำสั่ง Virtualenv
ฉันไม่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 มีวิธีแก้ปัญหาสำหรับสิ่งนี้หรือไม่? …
207 python  macos  virtualenv 

12
อัพเกรด python ใน virtualenv
มีวิธีในการอัพเกรดเวอร์ชั่นของไพ ธ อนที่ใช้ใน virtualenv หรือไม่ (เช่นถ้ามีการปล่อยบั๊กออกมา)? ฉันทำได้pip freeze --local > requirements.txtแล้วลบไดเรกทอรีและpip install -r requirements.txtแต่ต้องมีการติดตั้งไลบรารีขนาดใหญ่จำนวนมากตัวอย่างเช่นnumpyซึ่งฉันใช้บ่อย ฉันเห็นว่านี่เป็นข้อได้เปรียบเมื่ออัปเกรดจากเช่น 2.6 -> 2.7 แต่จะเป็นอย่างไรเมื่อ 2.7.x -> 2.7.y

8
Conda ใช้แทน virtualenv หรือไม่
ฉันเพิ่งค้นพบCondaหลังจากฉันประสบปัญหาในการติดตั้ง SciPy โดยเฉพาะในแอพ Heroku ที่ฉันกำลังพัฒนา ด้วย Conda คุณสร้างสภาพแวดล้อมที่คล้ายกันมากกับสิ่งที่virtualenvไม่ คำถามของฉันคือ: หากฉันใช้ Conda จะต้องใช้ virtualenv แทนหรือไม่ ถ้าไม่ฉันจะใช้ทั้งสองร่วมกันได้อย่างไร ฉันจะติดตั้ง virtualenv ใน Conda หรือ Conda ใน virtualenv หรือไม่ ฉันยังต้องใช้ pip หรือไม่? ถ้าเป็นเช่นนั้นฉันจะยังสามารถติดตั้งแพ็คเกจด้วย pip ในสภาพแวดล้อมที่แยกได้หรือไม่

8
วัตถุประสงค์ของ“ pip install --user …” คืออะไร?
จากpip install --help: --user Install to the Python user install directory for your platform. Typically ~/.local/, or %APPDATA%\Python on Windows. (See the Python documentation for site.USER_BASE for full details.) เอกสารสำหรับเว็บไซต์ USER_BASE เป็นหนอนที่น่ากลัวที่น่าสนใจ * ห้ามเรื่องที่ฉันไม่เข้าใจ --userภาษาอังกฤษธรรมดามีจุดประสงค์อะไร? ทำไมการรวมแพคเกจถึง~/.local/สำคัญ? ทำไมไม่เพียงเอาไฟล์ปฏิบัติการมาไว้ที่ $ PATH ของฉันล่ะ

2
ความสัมพันธ์ระหว่าง virtualenv และ pyenv คืออะไร?
ฉันเพิ่งเรียนรู้วิธีการใช้ virtualenv และ virtualenvwrapper ในเวิร์กโฟลว์ของฉัน แต่ฉันเห็น pyenv กล่าวถึงในคู่มือเล็กน้อย แต่ดูเหมือนว่าฉันจะไม่เข้าใจความหมายของ pyenv และคล้ายกับ virtualenv อย่างไร pyenv เป็นการทดแทนที่ดีขึ้น / ใหม่กว่าสำหรับ virtualenv หรือเครื่องมือฟรีหรือไม่? หากหลังมันทำอะไรที่แตกต่างกันและสอง (และ virtualenvwrapper ถ้ามี) ทำงานร่วมกันได้อย่างไร?

8
เทียบเท่าทับทิมของ virtualenv?
มีบางสิ่งที่คล้ายกับ Python virtualenvยูทิลิตี้หรือไม่ โดยทั่วไปจะช่วยให้คุณสามารถติดตั้งแพคเกจหลามในสภาพแวดล้อม sandboxed เพื่อให้easy_install djangoไม่ได้ไปในไดเรกทอรีเว็บไซต์แพคเกจทั้งระบบของคุณก็จะไปในสมุด virtualenv สร้าง ตัวอย่างเช่น: $ virtualenv test New python executable in test/bin/python Installing setuptools...cd .........done. $ cd test/ $ source bin/activate (test)$ easy_install tvnamer Searching for tvnamer Best match: tvnamer 0.5.1 Processing tvnamer-0.5.1-py2.5.egg Adding tvnamer 0.5.1 to easy-install.pth file Installing tvnamer script to /Users/dbr/test/bin …
165 python  ruby  virtualenv 

22
ข้อผิดพลาด PyLint“ ไม่สามารถนำเข้า” ได้ - จะตั้ง PYTHONPATH ได้อย่างไร?
ฉันใช้ PyLint จากด้านใน Wing IDE บน Windows ฉันมีไดเรกทอรีย่อย (แพ็คเกจ) ในโครงการของฉันและภายในแพ็คเกจฉันนำเข้าโมดูลจากระดับบนสุดเช่น __init__.py myapp.py one.py subdir\ __init__.py two.py ข้างในtwo.pyฉันมีimport oneและสิ่งนี้ทำงานได้ดีที่รันไทม์เนื่องจากไดเรกทอรีระดับบนสุด (ซึ่งmyapp.pyรัน) อยู่ในเส้นทาง Python อย่างไรก็ตามเมื่อฉันรัน PyLint บน two.py มันทำให้ฉันมีข้อผิดพลาด: F0401: Unable to import 'one' ฉันจะแก้ไขสิ่งนี้ได้อย่างไร

8
การเปลี่ยนชื่อโฟลเดอร์ virtualenv โดยไม่ทำลาย
ฉันได้สร้างโฟลเดอร์และเริ่มต้นอินสแตนซ์ virtualenv ในนั้น $ mkdir myproject $ cd myproject $ virtualenv env เมื่อฉันรัน(env)$ pip freezeมันจะแสดงแพ็คเกจที่ติดตั้งตามที่ควร ตอนนี้ผมต้องการที่จะเปลี่ยนชื่อไปmyproject/project/ $ mv myproject/ project/ อย่างไรก็ตามตอนนี้เมื่อฉันวิ่ง $ . env/bin/activate (env)$ pip freeze มันบอกว่าไม่ได้ติดตั้ง pip ฉันจะเปลี่ยนชื่อโฟลเดอร์โครงการโดยไม่ทำลายสภาพแวดล้อมได้อย่างไร
162 python  ubuntu  virtualenv  pip 

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