การใช้pip3
เพื่อติดตั้งแพ็กเกจใน a virtualenv
ทำให้แพ็กเกจถูกติดตั้งในโฟลเดอร์ global site-packaging แทนที่จะเป็นแพ็กเกจในโฟลเดอร์ Virtualenv นี่คือวิธีการตั้งค่า Python3 และ Virtualenv บน OS X Mavericks (10.9.1):
ฉันติดตั้ง Python3 โดยใช้ Homebrew:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
brew install python3 --with-brewed-openssl
เปลี่ยน$PATH
ตัวแปรใน.bash_profile
; เพิ่มบรรทัดต่อไปนี้:
export PATH=/usr/local/bin:$PATH
การรันwhich python3
ผลตอบแทน/usr/local/bin/python3
(หลังจากรีสตาร์ทเชลล์)
หมายเหตุ: which python3
ยังคงส่งคืน / usr/bin/python
แม้ว่า
ติดตั้งvirtualenv
โดยใช้pip3
:
pip3 install virtualenv
จากนั้นสร้างใหม่virtualenv
และเปิดใช้งาน:
virtualenv testpy3 -p python3
cd testpy3
source bin/activate
หมายเหตุ: ถ้าฉันไม่ระบุ -p python3 pip จะหายไปจากโฟลเดอร์ bin ใน Virtualenv
การรันwhich pip
และwhich pip3
ทั้งสองส่งคืนโฟลเดอร์ Virtualenv:
/Users/kristof/VirtualEnvs/testpy3/bin/pip3
ตอนนี้เมื่อฉันพยายามติดตั้งเช่น Markdown โดยใช้ pip ใน Virtualenv ที่เปิดใช้งาน pip จะติดตั้งในโฟลเดอร์ global site-package แทนโฟลเดอร์ site-Packages ของ Virtualenv
pip install markdown
pip list
ผลตอบแทนการทำงาน:
Markdown (2.3.1)
pip (1.4.1)
setuptools (2.0.1)
virtualenv (1.11)
เนื้อหาของ/Users/kristof/VirtualEnvs/testpy3/lib/python3.3/site-packages
:
__pycache__/
_markerlib/
easy_install.py
pip/
pip-1.5.dist-info/
pkg_resources.py
setuptools/
setuptools-2.0.2.dist-info/
เนื้อหาของ/usr/local/lib/python3.3/site-packages
:
Markdown-2.3.1-py3.3.egg-info/
__pycache__/
easy-install.pth
markdown/
pip-1.4.1-py3.3.egg/
setuptools-2.0.1-py3.3.egg
setuptools.pth
virtualenv-1.11-py3.3.egg-info/
virtualenv.py
virtualenv_support/
อย่างที่คุณเห็นโฟลเดอร์global site-package มี Markdown โฟลเดอร์ Virtualenv ไม่มี
หมายเหตุ: ฉันเคยติดตั้ง Python2 และ Python3 มาก่อนบน VM อื่น (ทำตามคำแนะนำเหล่านี้ ) และมีปัญหาเดียวกันกับ Python3 การติดตั้งแพ็คเกจใน Virtualenv ที่ใช้ Python2 ทำงานได้อย่างไม่มีที่ติ
คำแนะนำคำแนะนำใด ๆ ... จะได้รับการชื่นชมมาก
pip3
อย่างไร?) มันอาจจะไม่เลวร้ายด้วยตัวมันเอง แต่คุณควรตระหนักว่ามันเป็น