Який найпростіший спосіб зробити встановлення пакету python на локальному рівні?


32

Я не хочу мати справу з virtualenv для локальної установки Python, я просто хочу встановити кілька пакетів локально, не маючи справу зі PYTHONPATHзмінною оточення, як це зробити?


Ви кажете "розібратися" так, ніби віртуаленв був клопотом. Я виявив, що справжнє навпаки. (Можливо, ви хочете --system-site-packages?)
Андреас Кльокнер

це було гіпотетично :) virtualenv є приголомшливим, але він не відповідає кожному випадку використання.
Арон Ахмадія

Відповіді:


48

Python (станом на 2.6 та 3.0 ) тепер здійснює пошук у каталозі ~ / .local для локальних установок, для встановлення яких не потрібні адміністративні привілеї, тому вам просто потрібно вказати інсталятора на цей каталог.

Якщо ви вже завантажили пакет fooі хочете встановити його вручну, введіть:

cd path/to/foo
python setup.py install --user

Якщо ви використовуєте easy_install і хочете, щоб завантажений і встановлений пакет:

easy_install --prefix=$HOME/.local/ foo

Оновлення від RafiK

pip install --user foo

Наступна відповідь надана для історичних цілей: Це трохи більше роботи, якщо ви використовуєте pip для завантаження та встановлення:

pip install --install-option="--prefix=$HOME/.local" foo

3
оновлення: pip тепер підтримує прапор --user: pip install --user SomePackage (посилання на посібник) Використовуючи це, все повинно працювати з коробки навіть на різних ОС
RafiK

5

Незважаючи на те, що мені подобається Python як мова, розповсюдження пакетів Python - це безлад. Я завжди знаходжу людей, не знайомих з Python, що бореться з цим.

Поруч із локальною інсталяцією користувача, як описано Ароном (використовуючи --user або --prefix), ще один варіант - EasyBuild ( http://hpcugent.github.com/easybuild/ ). Не тільки для пакетів Python, але і для будь-якого (наукового) програмного пакету. Після того, як EasyBuild має підтримку для цього, створення та встановлення програмного пакету - це в основному одна команда.

Перелік програмних пакетів, які зараз підтримуються, див. Https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packages .

Відмова: Я розробник EasyBuild.


2

@Aron: Обов’язково додайте шлях до локальних пакетів сайтів до змінної середовища $ PYTHONPATH


Він автоматично включається в шлях до сайту, починаючи з Python 2.6 та Python 3.0 :)
Aron Ahmadia

@AronAhmadia не, якщо ви використовуєте цю --prefixопцію.
Єнс Тіммерман

@JensTimmerman - шлях до сайту, де Python виглядає, коли він починає імпортувати модулі, у будь-який час, коли ви запускаєте Python. Параметр префікса вказує, де встановити даний пакет під час встановлення пакета Python. Два повністю відокремлених поняття.
Арон Ахмадія

@AronAhmadia так, я мою думку про те, що при використанні easy_install --prefix = / tmp вам потрібно додати "/tmp/lib/pythonx.x/site-packages" до вашої змінної PYTHONPATH, інакше пітон не підбере.
Єнс Тіммерман

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.