Если пакет находится в PYPI, загрузите его и его зависимости в некоторый локальный каталог. Например
$ mkdir / pypi && cd / pypi
$ ls -la
-rw-r - r-- 1 посох Павел 237954 19 апреля 11:31 Flask-WTF-0.6.tar.gz
-rw-r - r-- 1 штатный сотрудник 389741 22 февраля 17:10 Jinja2-2.6.tar.gz
-rw-r - r-- 1 штатный сотрудник 70305 11 апреля, 00:28 MySQL-python-1.2.3.tar.gz
-rw-r - r-- 1 штатный сотрудник 2597214 10 апреля 18:26 SQLAlchemy-0.7.6.tar.gz
-rw-r - r-- 1 штатный сотрудник 1108056 22 февраля 17:10 Werkzeug-0.8.2.tar.gz
-rw-r - r-- 1 штатный сотрудник 488207 10 апреля 18:26 boto-2.3.0.tar.gz
-rw-r - r-- 1 посох Павел 490192 16 апреля 12:00 фляга-0,9-dev-2a6c80a.tar.gz
Некоторые пакеты, возможно, придется архивировать в похожие тарболы вручную. Я делаю это много, когда хочу более свежую (менее стабильную) версию чего-либо. Некоторые пакеты не на PYPI, так же относится и к ним.
Предположим, у вас есть правильно сформированное приложение Python в ~/src/myapp
. ~/src/myapp/setup.py
будет install_requires
список, который упоминает одну или несколько вещей, которые у вас есть в вашем /pypi
каталоге. Вот так:
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
Если вы хотите иметь возможность запускать ваше приложение со всеми необходимыми зависимостями, в то же время взламывая его, вы сделаете что-то вроде этого:
$ cd ~ / src / myapp
$ python setup.pyvelop --always-unzip --allow-hosts = Нет --find-links = / pypi
Таким образом, ваше приложение будет выполняться прямо из вашего исходного каталога. Вы можете взломать вещи, а затем перезапустить приложение, не восстанавливая ничего.
Если вы хотите установить свое приложение и его зависимости в текущую среду Python, вы сделаете что-то вроде этого:
$ cd ~ / src / myapp
$ easy_install --always-unzip --allow-hosts = Нет --find-links = / pypi.
В обоих случаях сборка завершится неудачей, если в /pypi
каталоге нет одной или нескольких зависимостей . Он не будет пытаться беспорядочно установить недостающие вещи из Интернета.
Я настоятельно рекомендую вызывать setup.py develop ...
и easy_install ...
в активной виртуальной среде, чтобы не загрязнять вашу глобальную среду Python. Это (virtualenv то есть) в значительной степени путь. Никогда не устанавливайте ничего в глобальную среду Python.
Если компьютер, на котором вы создали ваше приложение, имеет ту же архитектуру, что и компьютер, на котором вы хотите его развернуть, вы можете просто скопировать весь каталог виртуальной среды, в который вы easy_install
ввели все. Однако непосредственно перед тарболингом необходимо сделать каталог виртуальной среды перемещаемым (см. Параметр --relocatable ). ПРИМЕЧАНИЕ: на целевом компьютере должна быть установлена та же версия Python, а также должны быть предварительно установлены любые зависимости на основе C, которые может иметь ваше приложение (например, если вы зависите от PIL , то должны быть предварительно установлены libpng, libjpeg и т. Д.) ,