Как лучше всего загрузить пакет python и его зависимости от pypi для автономной установки на другую машину? Есть ли простой способ сделать это с помощью pip или easy_install? Я пытаюсь установить библиотеку запросов на коробку FreeBSD, которая не подключена к Интернету.
python
pip
freebsd
easy-install
python-requests
Крис Дранц
источник
источник
Ответы:
Если пакет находится в PYPI, загрузите его и его зависимости в некоторый локальный каталог. Например
Некоторые пакеты, возможно, придется архивировать в похожие тарболы вручную. Я делаю это много, когда хочу более свежую (менее стабильную) версию чего-либо. Некоторые пакеты не на PYPI, так же относится и к ним.
Предположим, у вас есть правильно сформированное приложение Python в
~/src/myapp
.~/src/myapp/setup.py
будетinstall_requires
список, который упоминает одну или несколько вещей, которые у вас есть в вашем/pypi
каталоге. Вот так:Если вы хотите иметь возможность запускать ваше приложение со всеми необходимыми зависимостями, в то же время взламывая его, вы сделаете что-то вроде этого:
Таким образом, ваше приложение будет выполняться прямо из вашего исходного каталога. Вы можете взломать вещи, а затем перезапустить приложение, не восстанавливая ничего.
Если вы хотите установить свое приложение и его зависимости в текущую среду Python, вы сделаете что-то вроде этого:
В обоих случаях сборка завершится неудачей, если в
/pypi
каталоге нет одной или нескольких зависимостей . Он не будет пытаться беспорядочно установить недостающие вещи из Интернета.Я настоятельно рекомендую вызывать
setup.py develop ...
иeasy_install ...
в активной виртуальной среде, чтобы не загрязнять вашу глобальную среду Python. Это (virtualenv то есть) в значительной степени путь. Никогда не устанавливайте ничего в глобальную среду Python.Если компьютер, на котором вы создали ваше приложение, имеет ту же архитектуру, что и компьютер, на котором вы хотите его развернуть, вы можете просто скопировать весь каталог виртуальной среды, в который вы
easy_install
ввели все. Однако непосредственно перед тарболингом необходимо сделать каталог виртуальной среды перемещаемым (см. Параметр --relocatable ). ПРИМЕЧАНИЕ: на целевом компьютере должна быть установлена та же версия Python, а также должны быть предварительно установлены любые зависимости на основе C, которые может иметь ваше приложение (например, если вы зависите от PIL , то должны быть предварительно установлены libpng, libjpeg и т. Д.) ,источник
--allow-hosts=None
тебя можно было бы использовать переключатель--no-index
Команда pip
download
позволяет загружать пакеты без их установки:pip download -r requirements.txt
(В предыдущих версиях pip это было записано
pip install --download -r requirements.txt
.)Затем вы можете использовать
pip install --no-index --find-links /path/to/download/dir/ -r requirements.txt
для установки этих загруженных sdists без доступа к сети.источник
--find-links file:/path/to/some/dir/
и вы должны загрузить и установить с той же версией pip - иначе это можетЕсли вы хотите установить библиотеки Python и их зависимости в автономном режиме, выполните следующие действия на компьютере с той же ОС, подключенной к сети и установленной Python:
1) Создайте
requirements.txt
файл с похожим содержимым (Примечание. Это библиотеки, которые вы хотите загрузить):Одним из вариантов создания файла требований является использование
pip freeze > requirements.txt
. Это перечислит все библиотеки в вашей среде. Затем вы можете войтиrequirements.txt
и удалить ненужные.2) Выполнить команду
mkdir wheelhouse && pip download -r requirements.txt -d wheelhouse
для загрузки библиотек и их зависимостей в каталогwheelhouse
3) Скопируйте файл require.txt в
wheelhouse
каталог4) Архив рубки в
wheelhouse.tar.gz
сtar -zcf wheelhouse.tar.gz wheelhouse
Затем загрузите
wheelhouse.tar.gz
на целевую машину:1) Выполнить,
tar -zxf wheelhouse.tar.gz
чтобы извлечь файлы2) Выполнить
pip install -r wheelhouse/requirements.txt --no-index --find-links wheelhouse
для установки библиотек и их зависимостейисточник
pip install
в конце концов, он говорит: ОШИБКА: не удалось найти версию, которая удовлетворяет требованию ..`автономный питон. для этого я использую virtualenv (изолированная среда Python)
1) установить virtualenv онлайн с помощью pip:
или в автономном режиме с помощью whl: перейдите по этой ссылке , загрузите последнюю версию (.whl или tar.gz) и установите ее с помощью этой команды:
используя
--user
вам не нужно использоватьsudo pip…
.2) использовать virtualenv
на онлайн-машине выберите каталог с терминалом
cd
и запустите этот код:после установки всех пакетов вы должны сгенерировать
requirements.txt
так, пока ваш virtualenv активен, напишитеоткройте новый терминал и создайте еще один тип env
myenv2
.Теперь вы можете перейти в автономную папку, где находятся ваши папка
requirements.txt
иtranferred_packages
папка. загрузите пакеты со следующим кодом и поместите их все вtranferred_packages
папку.перенести автономную папку на автономный компьютер, а затем
что находится в папке в автономном режиме [needs.txt, tranferred_packages {Flask-0.10.1.tar.gz, ...}]
проверить список вашей посылки
примечание: как и в 2017 году, лучше использовать python 3. вы можете создать python 3 virtualenv с помощью этой команды.
источник
Скачайте tarball , перенесите его на свой компьютер с FreeBSD и распакуйте его, затем запустите,
python setup.py install
и все готово!РЕДАКТИРОВАТЬ: Просто чтобы добавить к этому, вы также можете установить tarballs с pip сейчас.
источник
Позвольте мне пройти процесс шаг за шагом:
откройте командную строку или оболочку и выполните следующую команду:
Предположим, что вы хотите пакет
tensorflow
$ pip download tensorflow
Теперь на целевом компьютере скопируйте
packages
папку и примените следующую командуОбратите внимание, что
tensorflow-xyz.whl
необходимо заменить оригинальное имя требуемой упаковки.источник
Использование
wheel
скомпилированных пакетов.связать:
скопируйте tarball и установите:
Обратите внимание,
wheel
бинарные пакеты не на разных машинах.Больше исх. здесь: https://pip.pypa.io/en/stable/user_guide/#installation-bundles
источник
У меня была похожая проблема. И я должен был установить его так же, как мы сделали из pypi.
Я сделал следующие вещи:
Создайте каталог для хранения всех пакетов на машине, которые имеют доступ к Интернету.
Скачать все пакеты по пути
Загрузите каталог с пакетами и скопируйте его на компьютер, на котором нет доступа к Интернету. Тогда делай,
Скопируйте packages.tar.gz в конечный компьютер, у которого нет доступа к Интернету.
На компьютере, который не имеет доступа к Интернету, выполните следующие действия (при условии, что вы скопировали tarred-пакеты в / path / to / package / на текущем компьютере)
и вставьте следующий контент внутрь и сохраните его.
Наконец, я предлагаю вам использовать некоторую форму
virtualenv
для установки пакетов.Вы должны быть в состоянии загрузить все модули, которые находятся в каталоге / path / to / package / .
Примечание: я только сделал это, потому что я не мог добавить параметры или изменить способ установки модулей. В противном случае я бы сделал
источник
Для Pip 8.1.2 вы можете использовать
pip download -r requ.txt
для загрузки пакетов на ваш локальный компьютер.источник