Si el paquete está en PYPI, descárguelo y sus dependencias en algún directorio local. P.ej
$ mkdir / pypi && cd / pypi
$ ls -la
-rw-r - r-- 1 personal de pavel 237954 19 de abril 11:31 Frasco-WTF-0.6.tar.gz
-rw-r - r-- 1 personal de pavel 389741 22 de febrero 17:10 Jinja2-2.6.tar.gz
-rw-r - r-- 1 personal de pavel 70305 11 de abril 00:28 MySQL-python-1.2.3.tar.gz
-rw-r - r-- 1 personal de pavel 2597214 10 de abril 18:26 SQLAlchemy-0.7.6.tar.gz
-rw-r - r-- 1 personal de pavel 1108056 22 de febrero 17:10 Werkzeug-0.8.2.tar.gz
-rw-r - r-- 1 personal de pavel 488207 10 de abril 18:26 boto-2.3.0.tar.gz
-rw-r - r-- 1 personal de pavel 490192 16 de abril 12:00 frasco-0.9-dev-2a6c80a.tar.gz
Algunos paquetes pueden tener que archivarse en tarballs de aspecto similar a mano. Lo hago mucho cuando quiero una versión más reciente (menos estable) de algo. Algunos paquetes no están en PYPI, por lo que se aplica a ellos.
Supongamos que tiene una aplicación Python correctamente formada en ~/src/myapp
. ~/src/myapp/setup.py
tendrá una install_requires
lista que menciona una o más cosas que tiene en su /pypi
directorio. Al igual que:
install_requires=[
'boto',
'Flask',
'Werkzeug',
# and so on
Si quieres poder ejecutar tu aplicación con todas las dependencias necesarias mientras la pirateas, harás algo como esto:
$ cd ~ / src / myapp
$ python setup.py desarrollo - siempre-descomprimir --allow-hosts = Ninguno --find-links = / pypi
De esta manera, su aplicación se ejecutará directamente desde su directorio de origen. Puedes hackear cosas y luego volver a ejecutar la aplicación sin reconstruir nada.
Si desea instalar su aplicación y sus dependencias en el entorno actual de Python, hará algo como esto:
$ cd ~ / src / myapp
$ easy_install --always-unzip --allow-hosts = None --find-links = / pypi.
En ambos casos, la compilación fallará si una o más dependencias no están presentes en el /pypi
directorio. No intentará instalar de manera promiscua las cosas faltantes de Internet.
Recomiendo invocar setup.py develop ...
y easy_install ...
dentro de un entorno virtual activo para evitar contaminar su entorno global de Python. Es (virtualenv que es) más o menos el camino a seguir. Nunca instales nada en el entorno global de Python.
Si la máquina en la que ha creado su aplicación tiene la misma arquitectura que la máquina en la que desea implementarla, puede simplemente tarball todo el directorio del entorno virtual en el que easy_install
introdujo todo. Sin embargo, justo antes de tarballing, debe hacer que el directorio del entorno virtual sea reubicable (consulte la opción --relocatable ). NOTA: la máquina de destino debe tener instalada la misma versión de Python, y también las dependencias basadas en C que pueda tener su aplicación también deben estar preinstaladas allí (por ejemplo, si depende de PIL , debe estar preinstalado libpng, libjpeg, etc.) .