оновлено: 2019-05-11: Цей пост в основному згадується virtualenv
, але згідно з документом Python про встановлення модуля , оскільки Python 3.5 " venv
зараз рекомендується використання для створення віртуальних середовищ", а virtualenv
альтернатива для версій Python до 3.4 .
оновлено: 2018-08-17: з моменту використання conda-4.4.0conda
для activate
анаконди на всіх платформах
оновлено: 2017-03-27: PEP 513 - manylinux
бінарні файли для PyPI
оновлено: 2016-08-19: Варіант безперервного анаконда
Це дещо дублікат easy_install / pip або apt-get .
Для глобальних пакетів Python використовуйте програмний центр Ubuntu, apt, apt-get або синаптик
Ubuntu використовує Python для багатьох важливих функцій, тому втручання в Python може пошкодити вашу ОС. Це основна причина , чому я ніколи не використовую pip
в моїй системі Ubuntu, але замість цього я використовую або Ubuntu Software Center, синаптичні , apt-get
або новіше тільки apt
, що все за замовчуванням установки пакетів з репозиторію Ubuntu . Ці пакети тестуються, як правило, попередньо складені, тому вони встановлюються швидше і в кінцевому рахунку розроблені для Ubuntu. Крім того, всі необхідні залежності також встановлюються та ведеться журнал встановлень, щоб їх можна було повернути назад. Я думаю, що більшість пакетів мають відповідні репост Launchpad, щоб ви могли подавати проблеми.
Ще одна причина використання будь-яких пакетів Ubuntu - це те, що іноді ці пакети Python мають різні назви залежно від того, звідки ви їх завантажили. Python-chardet - приклад пакету, який свого часу був названий однією річчю в PyPI, а іншою - у сховищі Ubuntu. Тому робити щось подібне 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 досить приємно, щоб ці пакети були окремими від пакетів дистрибутива, помістивши пакети дистрибутивів у папку з назвою dist-packages/
. У сховищі Ubuntu є як pip, virtualenv, так і setuptools. Однак я другою пропозицією Войцеха використовувати virtualenv.
Для особистих проектів Python використовуйте pip and wheel у virtualenv
Якщо вам потрібна остання версія, або модуль не знаходиться у сховищі Ubuntu, тоді запустіть virtualenv і використовуйте pip для встановлення пакета. Хоча pip та setuptools об'єдналися, IMO-pip віддається перевазі над простою установкою або distutils, оскільки він завжди буде чекати, поки пакет повністю завантажується та складеться перед тим, як скопіювати його у вашу файлову систему, і це зробить оновлення або видалення вітерця. Багато в чому схожий на apt-get, тим, що він, як правило, добре справляється із залежностями. Однак вам , можливо, доведеться самостійно впоратися з деякими залежностями, але з моменту прийняття PEP 513 зараз існують manylinux
бінарні файли в індексі пакетів Python (PyPI) для таких популярних дистрибутивів Linux, як 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. Ви можете використати це для оновлення піп для особистого використання, як зазначив JF Себастьян у своєму коментарі до іншої відповіді . ПРИМІТКА: -m
це дійсно потрібно лише в MS Windows під час оновлення файлів .
python -m pip install --user pip setuptools wheel virtualenv
Новіші версії pip автоматично кешують колеса, тому наступна корисна лише для старих версій pip. Оскільки ви можете закінчити встановлення цих багато разів, подумайте про використання колеса з піпсом для створення рульової рубки. Колесо вже включено в 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 і вам потрібні ті самі пакети, які ви вже створили, ви можете встановити їх з вашої колісної кімнати, використовуючиpip install --find-links=<fullpath>/wheelhouse
Прочитайте Про встановлення модулів Python в документації на Python та Про встановлення пакетів на головній сторінці індексу пакунків Python . Також pip , venv , virtualenv та колесо .
Якщо ви не ввійшли sudoers
і virtualenv
не встановлені.
Інший варіант використання віртуального середовища, або якщо ви використовуєте спільний доступ Linux без привілеїв root, то, використовуючи схеми установки Python --user
або --home=<wherever-you-want>
Python distutils
, встановіть пакети на значення site.USERBASE
або куди хочете. Новіші версії pip також мають --user
можливість. Не використовуйте sudo
!
pip install --user virtualenv
Якщо ваша версія Linux pip занадто стара, ви можете передати параметри налаштування, використовуючи, --install-option
що корисно для передачі користувацьких параметрів до деяких setup.py
сценаріїв для деяких пакетів, що створюють розширення, наприклад встановлення PREFIX
. Можливо, вам доведеться просто витягнути дистрибутив і використовувати distutils
для встановлення пакета старошкільний спосіб, набравши текст python setup install [options]
. Читання документації щодо встановлення та distutils
документації може допомогти.
Python є досить хороший , щоб додати site.USERBASE
до вашого PYTHONPATH
попереду що - небудь ще, так що зміни будуть тільки ефект , який ви. Популярне місце для --home
є ~/.local
. Точну структуру файлів та конкретно, де розміщені ваші сайти, перегляньте посібник із встановлення модуля Python . Примітка : якщо ви використовуєте --home
схему установки , то вам може знадобитися , щоб додати його в PYTHONPATH
змінну оточення , використовуючи export
в вашому .bashrc
, .bash_profile
чи в оболонці для локалізованих пакетів будуть доступні в Python.
Використовуйте континуум Anaconda Python для математичних, наукових, даних чи особистих проектів
Якщо ви використовуєте Python для математики, науки або даних, то IMO справді хорошим варіантом є дистрибуція Anaconda-Python або більш базовий дистрибутив мініконди, випущений Anaconda, Inc. (раніше відомий як Continuum Analytics ) . Хоча кожен може отримати користь від використання Anaconda для особистих проектів, установка за замовчуванням включає понад 500 математичних та наукових пакетів, таких як NumPy, SciPy, Pandas та Matplotlib , в той час як miniiconda встановлює лише Anaconda-Python та менеджера середовища conda. Анаконда встановлюється лише у вашому особистому профілі, тобто: /home/<user>/
і змінює ваш ~/.bashrc
або ~/.bash_profile
доповнює шлях Анаконда до вашого особистого, $PATH
рекомендує отримати джерелоconda.sh
у вашому, ~/.bashrc
що дозволяє вам conda activate <env|default is base>
запускати анаконда - це впливає лише на вас - ваш системний шлях не змінюється . Тому вам не потрібен кореневий доступ чи sudo
використання Anaconda! Якщо ви вже додали Anaconda-Python, miniconda або conda до свого особистого шляху, тоді вам слід видалити PATH
експорт зі свого ~/.bashrc
та оновити нову рекомендацію , тож ваша система Python знову стане першою.
Це дещо схоже на --user
варіант, який я пояснив в останньому розділі, за винятком того, що він стосується Python в цілому, а не лише для пакетів. Тому Anaconda повністю відокремлена від вашої системи Python , вона не заважатиме вашій системі Python, і лише ви можете її використовувати або змінити. Оскільки він встановлює нову версію Python та всіх його бібліотек, вам знадобиться щонайменше 200 Мб місця, але це дуже розумно щодо кешування та керування бібліотеками, що важливо для деяких цікавих речей, які ви можете зробити з Anaconda.
Anaconda лікує колекцію бінарних файлів і бібліотек Python, необхідних залежностям в онлайн-сховищі (раніше називався binstar ) , а також вони розміщують пакунки користувачів як різні "канали". Менеджер пакунків, який використовується Anaconda, conda
за замовчуванням встановлює пакети з Anaconda, але ви можете подати сигнал про інший "канал", використовуючи -c
опцію.
Встановіть пакети conda
так само pip
:
$ conda install -c pvlib pvlib # install pvlib pkg from pvlib channel
Але conda
можна зробити набагато більше! Він також може створювати та керувати віртуальними середовищами так само, як virtualenv
. Тому, оскільки Anaconda створює віртуальне середовище, pip
менеджер пакунків може використовуватися для установки пакетів з PyPI в середовище Anaconda без root або sudo
. Ви НЕ використовувати sudo
з Анаконди! Увага! Будьте обережні, хоч при змішуванні pip
та conda
в анакондах, з / п, вам доведеться більш обережно керувати залежностями пакунків. Іншим варіантом, який pip
знаходиться в конденсаційному середовищі, є використання каналу конденсації, але також найкраще робити це в свіжому середовищі конди, де кондо-кування є каналом за замовчуванням. В крайньому випадку, якщо ви не можете знайти пакет ніде, окрім PyPI, подумайте про використання, --no-deps
а потім встановіть інші залежності вручну, використовуючи conda
.
Анаконда також деяким чином схожа на Ruby RVM, якщо ви знайомі з цим інструментом. Anaconda conda
також дозволяє створювати віртуальні середовища з різними версіями Python . наприклад : conda create -n py35sci python==3.5.2 numpy scipy matplotlib pandas statsmodels seaborn
створить стек наукових даних / даних, використовуючи Python-3.5 в новому середовищі, званому py35sci
. Ви можете перемикати середовища за допомогою conda
. Так як Конда-4.4.0, тепер це відрізняється , щоб , virtualenv
який використовує source venv/bin/activate
, але попередній Конда-4.4.0 ці conda
команди були так само , як virtualenv
і використовується також source
:
# AFTER conda-4.4
~/Projects/myproj $ conda activate py35sci
# BEFORE conda-4.4
~/Projects/myproj $ source activate py35sci
Але зачекайте, що є більше! Anaconda також може встановлювати різні мови, такі як R для статистичного програмування з каналу Anacondar
. Ви навіть можете налаштувати власний канал для завантаження дистрибутивів пакунків, створених для conda . Як уже згадувалося, conda-forge підтримує автоматизовану збірку багатьох пакетів на PyPI на каналі Anaconda conda-forge .
Епілог
Існує багато варіантів підтримки ваших проектів Python в Linux залежно від ваших особистих потреб та доступу. Однак, якщо є якась річ, я сподіваюся, що ви відмовитесь від цієї відповіді, це те, що вам майже ніколи не потрібно використовувати sudo
для установки пакетів Python . Використання sudo
має бути для вас запахом, що щось не так. Вас попередили
Удачі та щасливого кодування!