Установите пакет Python в конкретный каталог, отличный от места установки по умолчанию

Местоположение по умолчанию, где pip устанавливает пакеты в моей системе Ubuntu, - это /usr/local/lib/pytho2.7/dist-packages/, что, как мне кажется, в целом используется по умолчанию. Я использую дистрибутив Python Enthought (EPD, а не canopy) и хотел бы установить пакет в EPD, поскольку я обычно работаю с python из дистрибутива EPD в моей системе. Я хотел бы знать, в какой каталог внутри EPD нужно установить новые файлы с помощью pip; поскольку структура каталогов для EPD в Linux, кажется, сильно отличается от структуры каталогов EPD в MAC OS, где, кажется, есть много примеров.

Также я столкнулся с этим:

pip install --install-option="--prefix=$PREFIX_PATH" package_name

как принятый ответ на вопрос, похожий на этот. Я хотел бы знать, какова цель переменной среды $ PREFIX_PATH, поскольку моя в настоящее время пуста. И какой путь мне нужно указать в Ubuntu для моего дистрибутива Enthought EPD для установки модулей Python.

Прошу прощения за относительно наивный вопрос, но я новичок в EPD на ubuntu и все еще пытаюсь понять это.


person user2502020    schedule 20.06.2013    source источник
comment
Вы рассматривали возможность использования virtualenv?   -  person PepperoniPizza    schedule 20.06.2013
comment
да, но я хотел бы знать, как это сделать без использования virtualenv.   -  person user2502020    schedule 20.06.2013
comment
это может помочь: stackoverflow.com/questions/2915471/   -  person PepperoniPizza    schedule 20.06.2013
comment
Вы можете заменить $PREFIX_PATH любым каталогом для установки, который вам нужен.   -  person mata    schedule 20.06.2013


Ответы (6)


Эта строка должна работать для всех, как указано в документации.

pip install package_name -t any/path/i/like

PS:

И что касается комментария @CPiLL, any/path/i/like действительно может быть чем угодно, например /tmp/my-test-env. Пакет, устанавливаемый таким образом, НЕ будет доступен для вашей обычной среды Python, фактически они даже НЕ будут отображаться с pip list. И python -c "import package_name", как правило, НЕ ИСПОЛЬЗУЕТСЯ с исключением ImportError, если вы сначала не войдете в эту папку:

cd /tmp/my-test-env
python -c "import package-name"

Насколько полезен этот метод, выходит за рамки этого ответа.

person RayLuo    schedule 02.05.2014
comment
Я думаю pip install X --user это ярлык - person CpILL; 03.07.2015

Система: Ubuntu 12.04, Enthought Python Distribution (именно здесь я хотел установить новый модуль Python)

Таким образом, переменная среды prefix_path у меня не работала, и pip по-прежнему устанавливал ее в местоположение по умолчанию. Но я использовал Как изменить каталог по умолчанию, в который устанавливается pip?

вопрос в качестве ориентира. И один из ответов помог мне добиться того, что мне было нужно.

 pip install -d <path_to_my_directory>  

Для пути, который я использовал: path_to_epd_directory / lib / python2.7 / site-packages

Это помещает файл tar.gz в пакеты сайта

Затем извлеките его, используя:

tar -zxvf pymodule.tar.gz

создается каталог с именем pymodule, перейдите в этот модуль и введите:

 python setup.py install

и это должно сработать.

person user2502020    schedule 20.06.2013

Вы можете использовать этот код для установки вашего пакета по определенному пути.

pip install [package name] --target /path/to
person zxw    schedule 07.01.2020
comment
Пожалуйста, подумайте о добавлении комментария к тому, что делает ваш код. Одна строка кода без какой-либо обратной связи - ответ очень низкого качества - person Simas Joneliunas; 07.01.2020
comment
Это то же самое, что и главный ответ много лет назад. -t - это просто сокращение от --target. - person wim; 07.01.2020

Вместо этого вы можете использовать копию pip, которая была установлена ​​в вашей установке EPD.

$ path-to-EPD/bin/enpkg pip # Or simply enpkg pip, if EPD is on your PATH. 
$ path-to-EPD/bin/pip install <package-name>
person punchagan    schedule 20.06.2013

Это сработало для меня в Ubuntu Gnome 17.04. Установка PyMySQL в конкретный каталог:

sudo pip install PyMySQL -t /home/mahmoud/app
person mahmoud alaa    schedule 21.10.2017
comment
sudo pip install никогда не следует использовать. - person wim; 07.01.2020

Этот ответ работал в ОС Windows
Краткий ответ: чтобы установить пакет в определенную папку, используя -t параметр ex: pip install packageX -t lib/, затем добавьте эту папку в PYTHONPAHT

Длинный ответ:

  1. установить virtualenv в папку .env

  2. pip install с параметром -t, пример установки в папку lib моего проекта (с именем 3)
    (.env) d:\tmp\3>pip install packageX -t lib/

  3. показать список пакетов:

    (.env) d:\tmp\3>pip list
    Package    Version
    ---------- ----------
    pip        18.1
    setuptools 40.6.3
    ...
  1. Не видите свою посылку? откройте командную строку с правами администратора и установите PYTHONPATH

введите описание изображения здесь

  1. теперь новая командная строка и активация env увидят ваши пакеты  введите описание изображения здесь
person nguyên    schedule 14.01.2019