อัปเดต: 2019-05-11: โพสต์นี้ส่วนใหญ่กล่าวถึงvirtualenv
แต่ตามPython doc เกี่ยวกับการติดตั้งโมดูลเนื่องจาก Python 3.5 " venv
แนะนำให้ใช้งานสำหรับการสร้างสภาพแวดล้อมเสมือนจริง" ในขณะvirtualenv
นี้เป็นทางเลือกสำหรับ Python รุ่นก่อนหน้า 3.4 .
อัปเดต: 2018-08-17: เนื่องจากconda-4.4.0ใช้conda
กับแอนนาactivate
คอนดาบนทุกแพลตฟอร์ม
อัปเดต: 2017-03-27: PEP 513 - manylinux
ไบนารีสำหรับ PyPI
อัปเดต: 2016-08-25: ตัวเลือก Anaconda ต่อเนื่อง
นี้จะค่อนข้างซ้ำeasy_install / pip หรือ apt-get
สำหรับแพ็คเกจ Python ทั่วโลกให้ใช้ศูนย์ซอฟต์แวร์ Ubuntu, apt, apt-get หรือ synaptic
Ubuntu ใช้ Python สำหรับฟังก์ชั่นที่สำคัญหลายอย่างดังนั้นการรบกวน Python อาจทำให้ระบบปฏิบัติการของคุณเสียหาย นี่คือเหตุผลหลักที่ผมไม่เคยใช้pip
ในระบบ Ubuntu ของฉัน แต่แทนฉันใช้อูบุนตูซอฟท์แวศูนย์synaptic , apt-get
หรือใหม่เพียงapt
ซึ่งทั้งหมดโดยค่าเริ่มต้นติดตั้งแพคเกจจากพื้นที่เก็บข้อมูลอูบุนตู แพ็คเกจเหล่านี้ได้รับการทดสอบซึ่งมักจะรวบรวมไว้ล่วงหน้าเพื่อให้ติดตั้งได้เร็วขึ้นและได้รับการออกแบบสำหรับ Ubuntu ในที่สุด นอกจากนี้ยังมีการติดตั้งการอ้างอิงที่จำเป็นทั้งหมดและบันทึกการติดตั้งเพื่อให้สามารถย้อนกลับได้ ฉันคิดว่าแพ็คเกจส่วนใหญ่มีrepos Launchpad ที่เกี่ยวข้องเพื่อให้คุณสามารถยื่นปัญหา
อีกเหตุผลหนึ่งที่ใช้แพ็คเกจของ Ubuntu คือบางครั้งแพ็คเกจ Python เหล่านี้มีชื่อแตกต่างกันไปขึ้นอยู่กับที่คุณดาวน์โหลดมา Python-chardet เป็นตัวอย่างของแพ็คเกจที่ครั้งหนึ่งชื่อ PyPI บน PyPI และอีกอย่างใน Ubuntu repository ดังนั้นการทำสิ่งต่าง ๆ เช่นpip install requests
นี้จะไม่ทำให้ทราบว่า chardet ได้ถูกติดตั้งในระบบของคุณแล้วเนื่องจากเวอร์ชั่น Ubuntu มีชื่อแตกต่างจากนั้นจึงติดตั้งเวอร์ชันใหม่ซึ่งจะทำให้ระบบของคุณเสียหายในทางที่ไม่สำคัญเล็กน้อย
โดยทั่วไปคุณเพียงต้องการติดตั้งรหัสที่เชื่อถือได้ในระบบปฏิบัติการของคุณ ดังนั้นคุณควรจะประสาท$ sudo pip <anything-could-be-very-bad>
เกี่ยวกับการพิมพ์
ในที่สุดบางสิ่งก็ง่ายกว่าที่จะติดตั้งโดยใช้แพ็คเกจของ Ubuntu ตัวอย่างเช่นหากคุณพยายามpip install numpy
ติดตั้ง numpy & scipy เว้นแต่ว่าคุณได้ติดตั้ง gfortran, atlas-dev, blas-dev และ lapack-dev แล้วคุณจะเห็นข้อผิดพลาดในการรวบรวมที่ไม่สิ้นสุด อย่างไรก็ตามการติดตั้ง numpy & scipy ผ่านที่เก็บ Ubuntu นั้นง่ายเหมือน ...
$ sudo apt-get install python-numpy python-scipy
คุณโชคดีเพราะคุณกำลังใช้ Ubuntu หนึ่งในการกระจายที่ได้รับการสนับสนุนอย่างกว้างขวางและมีการอัปเดตอยู่บ่อยครั้ง เป็นไปได้มากว่าแพ็คเกจ Python ที่คุณต้องการจะอยู่ในที่เก็บ Ubuntu และอาจติดตั้งไว้ในเครื่องของคุณแล้ว และทุกๆ 6 เดือนจะมีการเปิดตัวแพ็คเกจใหม่ด้วยการเผยแพร่ Ubuntu ล่าสุด
หากคุณมั่นใจ 100% ว่าแพ็กเกจจะไม่รบกวนระบบ Ubuntu ของคุณ แต่อย่างใดคุณสามารถติดตั้งได้โดยใช้ pip และ Ubuntu ก็ดีพอที่จะแยกแพ็คเกจเหล่านี้ออกจากแพ็คเกจ distro โดยวางแพ็คเกจ distro ไว้ในโฟลเดอร์ที่ชื่อว่าdist-packages/
. ที่เก็บ Ubuntu มีทั้ง pip, virtualenv และ setuptools อย่างไรก็ตามฉันสอง Wojciech แนะนำให้ใช้ virtualenv
สำหรับโครงการ Python ส่วนบุคคลให้ใช้ pip และ wheel ใน virtualenv
หากคุณต้องการรุ่นล่าสุดหรือโมดูลไม่ได้อยู่ในที่เก็บ Ubuntu แล้วเริ่ม virtualenv และใช้ pip เพื่อติดตั้งแพคเกจ แม้ว่า pip และ setuptools ได้ถูกรวมเข้าด้วยกัน IMO pip นั้นต้องการมากกว่าการติดตั้งง่ายหรือ distutils เพราะมันจะรอจนกว่าแพ็คเกจจะถูกดาวน์โหลดและสร้างเสร็จสมบูรณ์ก่อนที่จะทำการคัดลอกลงในระบบไฟล์ของคุณและมันจะทำการอัพเกรดหรือถอนการติดตั้งสายลม ในหลาย ๆ วิธีมันคล้ายกับ apt-get ในการที่มันจัดการกับการพึ่งพาได้ดี แต่คุณจะ อาจมีการจัดการการอ้างอิงบางตัวเองแต่เนื่องจากPEP 513ถูกนำมาใช้ในขณะนี้มีmanylinux
ไบนารีที่งูใหญ่แพคเกจดัชนี (PyPI) สำหรับลินุกซ์ distros นิยมเช่น Ubuntu และ Fedoraตัวอย่างเช่นที่กล่าวไว้ข้างต้นสำหรับ NumPy และ SciPy ให้แน่ใจว่าคุณได้ติดตั้ง gfortran, atlas-dev, blas-dev และ lapack-dev จากที่เก็บ Ubuntuเช่นตอนนี้ทั้งNumPyและSciPyมีการแจกจ่ายให้กับ Ubuntu เป็นmanylinux
ล้อตามค่าเริ่มต้นโดยใช้ OpenBLAS แทน ของ ATLAS คุณยังสามารถสร้างพวกเขามาจากแหล่งที่มาโดยใช้ตัวเลือก pip--no-use-wheel
--no-binary <format control>
หรือ
~$ sudo apt-get install gfortran libblas-dev liblapack-dev libatlas-dev python-virtualenv
~$ mkdir ~/.venvs
~$ virtualenv ~/.venvs/my_py_proj
~$ source ~/.venvs/my_py_proj/bin/activate
~(my_py_proj)$ pip install --no-use-wheel numpy scipy
ดูหัวข้อถัดไป "คุณไม่ได้อยู่ในsudoers
" ด้านล่างสำหรับการติดตั้ง pip, setuptools, virtualenv หรือล้อที่ปรับปรุงแล้วไปยังโปรไฟล์ส่วนตัวของคุณโดยใช้--user
รูปแบบการติดตั้งด้วย pip คุณสามารถใช้เพื่อ pip ปรับปรุงสำหรับการใช้งานส่วนตัวของคุณเป็นJF เซบาสเตียนที่ระบุไว้ในความคิดเห็นของเขาที่จะตอบอีก หมายเหตุ: -m
เป็นสิ่งที่จำเป็นจริงๆเท่านั้นบน MS Windows เมื่อปรับปรุง pip
python -m pip install --user pip setuptools wheel virtualenv
Pip รุ่นใหม่กว่าจะทำการแคชล้อแบบอัตโนมัติดังนั้นข้อมูลต่อไปนี้จะเป็นประโยชน์สำหรับ Pip รุ่นเก่าเท่านั้น เนื่องจากคุณอาจติดตั้งหลาย ๆ ครั้งให้ลองใช้ wheel กับ pip เพื่อสร้าง wheelhouse ล้อรวมอยู่ในvirtualenv
ตั้งแต่ v13.0.0ดังนั้นหากรุ่นของvirtualenv
คุณเก่าเกินไปคุณอาจต้องติดตั้งล้อก่อน
~(my_py_proj)$ pip install wheel # only for virtualenv < v13.0.0
~(my_py_proj)$ pip wheel --no-use-wheel numpy scipy
สิ่งนี้จะสร้างไบนารีไฟล์ของล้อ<cwd>/wheelhouse
ใช้-d
เพื่อระบุไดเรกทอรีอื่น ตอนนี้ถ้าคุณเริ่ม virtualenv ตัวอื่นและคุณต้องการแพ็คเกจเดียวกันกับที่คุณได้สร้างขึ้นมาแล้วคุณสามารถติดตั้งได้โดยใช้ wheelhouse ของคุณpip install --find-links=<fullpath>/wheelhouse
อ่านการติดตั้งโมดูลหลามในเอกสารหลามและการติดตั้งแพคเกจบนหน้าหลักของงูหลามแพ็คเกจดัชนี นอกจากนี้ยังpip , venv , virtualenvและล้อ
หากคุณไม่ได้อยู่sudoers
และvirtualenv
ไม่ได้ติดตั้ง
ตัวเลือกอื่นสำหรับการใช้สภาพแวดล้อมเสมือนจริงหรือถ้าคุณใช้ Linux ร่วมกันโดยไม่มีสิทธิ์รูทจากนั้นใช้ชุดรูปแบบการติดตั้ง--user
หรือ--home=<wherever-you-want>
Python กับ Python distutils
จะติดตั้งแพ็คเกจตามมูลค่าsite.USERBASE
หรือทุกที่ที่คุณต้องการ pip รุ่นที่ใหม่กว่ามี--user
ตัวเลือกเช่นกัน ห้ามใช้sudo
!
pip install --user virtualenv
ถ้ารุ่นลินุกซ์ของคุณ pip เก่าเกินไปแล้วคุณสามารถส่งผ่านตัวเลือกการตั้งค่าโดยใช้--install-option
ซึ่งจะเป็นประโยชน์สำหรับการส่งผ่านตัวเลือกที่กำหนดเองบางสคริปต์สำหรับแพคเกจบางอย่างที่สร้างส่วนขยายเช่นการตั้งค่าsetup.py
PREFIX
คุณอาจจะต้องการเพียงแค่ดึงการจัดจำหน่ายและใช้ในการติดตั้งแพคเกจวิธีการแบบเก่าโรงเรียนโดยการพิมพ์distutils
python setup install [options]
การอ่านเอกสารการติดตั้งบางส่วนและdistutils
เอกสารอาจช่วยได้
งูหลามเป็นสิ่งที่ดีพอที่จะเพิ่มsite.USERBASE
ที่คุณPYTHONPATH
ไปข้างหน้าของสิ่งอื่นใดดังนั้นการเปลี่ยนแปลงเท่านั้นที่จะมีผลกระทบต่อคุณ สถานที่ยอดนิยมสำหรับการมี--home
~/.local
ดูคู่มือการติดตั้งโมดูล Python สำหรับโครงสร้างไฟล์ที่แน่นอนและโดยเฉพาะที่แพ็คเกจไซต์ของคุณอยู่ หมายเหตุ : หากคุณใช้--home
รูปแบบการติดตั้งแล้วคุณอาจจะต้องเพิ่มไปยังPYTHONPATH
ตัวแปรสภาพแวดล้อมที่ใช้export
ในของคุณ.bashrc
, .bash_profile
หรือในเปลือกของคุณสำหรับแพคเกจที่มีการแปลของคุณจะสามารถใช้ได้ในหลาม
ใช้Anaconda Python ต่อเนื่องสำหรับคณิตศาสตร์วิทยาศาสตร์ข้อมูลหรือโครงการส่วนตัว
หากคุณกำลังใช้งูหลามคณิตศาสตร์วิทยาศาสตร์หรือข้อมูลใดอย่างหนึ่งแล้ว IMO ตัวเลือกที่ดีจริงๆคือการกระจายงูหลามหรือพื้นฐานเพิ่มเติมdistro minicondaออกโดยAnaconda, Inc (ที่รู้จักกันก่อนหน้านี้เป็นContinuum Analytics ) แม้ว่าทุกคนจะได้รับประโยชน์จากการใช้ Anaconda สำหรับโครงการส่วนบุคคล แต่การติดตั้งเริ่มต้นนั้นมีแพ็คเกจทางคณิตศาสตร์และวิทยาศาสตร์มากกว่า 500 ชุดเช่น NumPy, SciPy, Pandas และ Matplotlibในขณะที่ miniconda จะติดตั้ง Anaconda-Python และผู้จัดการสภาพแวดล้อมเท่านั้น อนาคอนดาติดตั้งลงในโปรไฟล์ส่วนตัวของคุณเท่านั้นเช่น: /home/<user>/
และเปลี่ยนแปลงของคุณ~/.bashrc
หรือ~/.bash_profile
เพื่อเตรียมเส้นทางของอนาคอนดาเพื่อ$PATH
แนะนำแหล่งข้อมูลส่วนบุคคลของคุณconda.sh
ที่คุณ~/.bashrc
ซึ่งจะช่วยให้คุณใช้conda activate <env|default is base>
ในการเริ่มต้นงู - นี้มีผลเฉพาะกับคุณ - เส้นทางของระบบของคุณจะไม่เปลี่ยนแปลง ดังนั้นคุณไม่จำเป็นต้องเข้าถึงรูทหรือsudo
ใช้แอนาคอนดา! หากคุณได้เพิ่ม Anaconda-Python, miniconda หรือ conda ไปยังเส้นทางส่วนตัวของคุณแล้วคุณควรลบการPATH
ส่งออกจากของคุณ~/.bashrc
และอัปเดตเป็นคำแนะนำใหม่ดังนั้น Python ระบบของคุณจะกลับมาอีกครั้ง
นี่ค่อนข้างคล้ายกับ--user
ตัวเลือกที่ฉันอธิบายในส่วนสุดท้ายยกเว้นมันใช้กับ Python โดยรวมและไม่ใช่แค่แพ็คเกจ ดังนั้นอนาคอนดาจะแยกจาก Python ของระบบอย่างสิ้นเชิงมันจะไม่รบกวน Python ของระบบและมีเพียงคุณเท่านั้นที่สามารถใช้หรือเปลี่ยนแปลงมันได้ เนื่องจากมันติดตั้ง Python เวอร์ชันใหม่และไลบรารีทั้งหมดของมันคุณจะต้องมีพื้นที่อย่างน้อย 200MB แต่มันฉลาดมากเกี่ยวกับการแคชและการจัดการไลบรารีซึ่งเป็นสิ่งสำคัญสำหรับสิ่งดีๆที่คุณสามารถทำได้กับ Anaconda
อนาคอนดาดามัสก์รวบรวมคอลเลกชันของไพ ธ อนและไลบรารีที่ต้องการโดยการอ้างอิงในที่เก็บออนไลน์ (ก่อนหน้านี้เรียกว่าbinstar )และพวกเขายังโฮสต์แพ็คเกจผู้ใช้ในรูปแบบ "ช่องทาง" ที่แตกต่างกัน ตัวจัดการแพคเกจที่ใช้โดย Anaconda conda
โดยค่าเริ่มต้นจะติดตั้งแพคเกจจาก Anaconda แต่คุณสามารถส่งสัญญาณ "ช่องทาง" ที่แตกต่างกันโดยใช้-c
ตัวเลือก
ติดตั้งแพ็คเกจด้วยconda
เช่นเดียวกับpip
:
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
แต่conda
สามารถทำได้มากกว่านี้! นอกจากนี้ยังสามารถสร้างและจัดการสภาพแวดล้อมเสมือนvirtualenv
ได้ ดังนั้นตั้งแต่ Anaconda สร้างสภาพแวดล้อมเสมือนpip
ผู้จัดการแพคเกจสามารถใช้ในการติดตั้งแพคเกจจาก PyPI sudo
ในสภาพแวดล้อมงูโดยไม่ต้องรากหรือ ไม่ได้ใช้sudo
กับงู! คำเตือน! ระวังเมื่อผสมกันpip
และconda
ในสภาพแวดล้อมแบบอนาคอนดาคุณจะต้องจัดการการพึ่งพาแพคเกจอย่างระมัดระวังมากขึ้น ตัวเลือกอื่นpip
ในสภาพแวดล้อม conda คือการใช้ช่องทาง conda-forgeแต่ยังดีที่สุดที่จะทำเช่นนั้นในสภาพแวดล้อมที่สดพร้อม conda-forge เป็นช่องทางเริ่มต้น เป็นทางเลือกสุดท้ายถ้าคุณไม่สามารถหาแพคเกจใดก็ได้ แต่ใน PyPI พิจารณาใช้แล้วติดตั้งการอ้างอิงที่เหลือด้วยตนเองโดยใช้--no-deps
conda
อนาคอนด้านั้นคล้ายกับRuby RVMในบางวิธีหากคุณคุ้นเคยกับเครื่องมือนั้น งูconda
ยังช่วยให้คุณสร้างสภาพแวดล้อมเสมือนกับที่แตกต่างกันรุ่นของงูใหญ่ เช่น : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn
จะสร้างสแต็ค / วิทยาศาสตร์ข้อมูลวิทยาศาสตร์โดยใช้งูใหญ่ 3.5 py35sci
ในสภาพแวดล้อมใหม่ที่เรียกว่า conda
คุณสามารถเปลี่ยนสภาพแวดล้อมที่ใช้ ตั้งแต่ CONDA-4.4.0 นี้เป็นตอนที่แตกต่างกันไปvirtualenv
ซึ่งการใช้งานsource venv/bin/activate
แต่ก่อนหน้านี้เพื่อCONDA-4.4.0conda
คำสั่งเป็นเดียวกันเป็นvirtualenv
และยังใช้source
:
# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
แต่รอยังมีอีก! งูยังสามารถติดตั้งภาษาที่แตกต่างกันเช่นR สำหรับการเขียนโปรแกรมทางสถิติจากงูr
ช่อง คุณยังสามารถตั้งค่าช่องทางของคุณเองเพื่อกระจายแพคเกจการอัปโหลดที่สร้างขึ้นสำหรับ CONDA ดังที่ได้กล่าวCONDA-ปลอมรักษาอัตโนมัติสร้างของหลายแพคเกจใน PyPI ที่CONDA-ปลอมงูช่อง
ถ้อยคำส
มีตัวเลือกมากมายสำหรับการบำรุงรักษาโครงการ Python ของคุณบน Linux ขึ้นอยู่กับความต้องการส่วนบุคคลและการเข้าถึงของคุณ แต่ถ้ามีสิ่งหนึ่งที่ฉันหวังว่าคุณจะใช้เวลาห่างจากคำตอบนี้ก็คือว่าคุณควรจะเกือบจะไม่จำเป็นต้องใช้sudo
ในการติดตั้งแพคเกจหลาม การใช้sudo
ควรเป็นกลิ่นให้กับคุณว่ามีบางอย่างผิดปกติ คุณได้รับการเตือน
ขอให้โชคดีและการเข้ารหัสที่มีความสุข!