módulos - que es pip python
python pip especifica un directorio de biblioteca y un directorio de inclusión (7)
¿Alguna vez has usado virtualenv ? Es el paquete de Python que le permite crear y mantener múltiples entornos aislados en una máquina. Cada uno puede usar diferentes módulos independientes entre sí sin arruinar las dependencias en la biblioteca de su sistema o en un entorno virtual separado.
Si no tiene privilegios de root, puede descargar y usar el paquete virtualenv desde la fuente :
$ curl -O https://pypi.python.org/packages/source/v/virtualenv/virtualenv-X.X.tar.gz
$ tar xvfz virtualenv-X.X.tar.gz
$ cd virtualenv-X.X
$ python virtualenv.py myVE
Seguí los pasos anteriores este fin de semana en Ubuntu Server 12.0.4 y funcionó perfectamente. Cada nuevo entorno virtual que creas viene con PIP de forma predeterminada, por lo que es fácil instalar paquetes en su nuevo entorno.
Estoy usando pip y tratando de instalar un módulo de python llamado pyodbc que tiene algunas dependencias en bibliotecas que no son de python como unixodbc-dev, unixodbc-bin, unixodbc. No puedo instalar estas dependencias en todo el sistema en este momento, ya que solo estoy jugando, así que las he instalado en una ubicación no estándar. ¿Cómo le digo a pip dónde buscar estas dependencias? Más exactamente, ¿cómo paso la información a través de pip de include dirs (gcc -I) y de la biblioteca dirs (gcc -L -l) para usar al construir la extensión pyodbc?
En caso de que sea de ayuda para alguien, todavía no pude encontrar una manera de hacerlo a través de pip, por lo que terminé simplemente descargando el paquete y haciéndolo a través de su ''setup.py''. También cambió a lo que parece una API de instalación más fácil llamada ''pymssql''.
Otra forma de indicar la ubicación de los archivos de inclusión y las bibliotecas es establecer variables de entorno relevantes antes de ejecutar pip, por ejemplo
export LDFLAGS=-L/usr/local/opt/openssl/lib
export CPPFLAGS=-I/usr/local/opt/openssl/include
pip install cryptography
Sobre la base de la respuesta de Thorfin y suponiendo que las ubicaciones de la biblioteca y la inclusión que usted desea están en / usr / local, puede pasar ambas cosas así:
sudo pip install --global-option=build_ext --global-option="-I/usr/local/include/" --global-option="-L/usr/local/lib" <you package name>
Solo para su información ... Si tiene problemas para instalar un paquete con pip, puede usar el
Opción no --no-clean
para ver qué está sucediendo exactamente (es decir, por qué la compilación no funcionó). Por ejemplo, si numpy no se instala correctamente, puede intentar
pip install --no-clean numpy
luego mira la carpeta Temporal para ver qué tan lejos llegó la compilación. En una máquina con Windows, esto debería estar ubicado en algo como:
C:/Users/Bob/AppData/Local/Temp/pip_build_Bob/numpy
Para que quede claro, la opción --no-clean intenta instalar el paquete, pero no se limpia después de sí misma, lo que le permite ver qué intentaba hacer pip.
De lo contrario, si solo desea descargar el código fuente, yo usaría la -d
. Por ejemplo, para descargar el archivo .tar
código fuente de Numpy al directorio actual, use:
pip install -d %cd% numpy
También me ayudó la respuesta de Thorfin; Estaba construyendo GTK3 + en windows e instalando pygobject, estaba teniendo dificultades sobre cómo incluir varias carpetas con pip install.
Intenté crear el archivo de configuración de pip según la documentación de pip. pero falló. el que trabaja es con la línea de comando:
--global-option = build_ext seguido de --global-option = "- IlistOfDirectories" y / o --global-option = "- LlistofDirectories"
el separador que funciona con varias carpetas en Windows es '';'' punto y coma , NO dos puntos '':'' podría ser diferente en otros sistemas operativos.
muestra de línea de comando de trabajo
pip install --global-option=build_ext --global-option="-Ic:/gtk-build/gtk/x64/release/include;d:/gtk-build/gtk/x64/release/include/gobject-introspection-1.0" --global-option="-Lc:/gtk-build/gtk/x64/release/lib" pygobject==3.27.1
puede usar ''/' o ''/'' para la ruta, pero asegúrese de no escribir la barra diagonal al lado de "
esto a continuación fallará porque hay una barra invertida al lado de la comilla doble
pip install --global-option=build_ext --global-option="-Ic:/willFail/" --global-option="-Lc:/willFail/" pygobject==3.27.1
pip tiene una --global-option
Puedes usarlo para pasar banderas adicionales a build_ext
.
Por ejemplo, para agregar una marca --library-dirs (-L):
pip install --global-option=build_ext --global-option="-L/path/to/local" pyodbc
gcc también admite variables de entorno: http://gcc.gnu.org/onlinedocs/gcc/Environment-Variables.html
No pude encontrar ninguna documentación de build_ext, así que aquí está la ayuda de la línea de comandos
Options for ''build_ext'' command:
--build-lib (-b) directory for compiled extension modules
--build-temp (-t) directory for temporary files (build by-products)
--plat-name (-p) platform name to cross-compile for, if supported
(default: linux-x86_64)
--inplace (-i) ignore build-lib and put compiled extensions into the
source directory alongside your pure Python modules
--include-dirs (-I) list of directories to search for header files
(separated by '':'')
--define (-D) C preprocessor macros to define
--undef (-U) C preprocessor macros to undefine
--libraries (-l) external C libraries to link with
--library-dirs (-L) directories to search for external C libraries
(separated by '':'')
--rpath (-R) directories to search for shared C libraries at runtime
--link-objects (-O) extra explicit link objects to include in the link
--debug (-g) compile/link with debugging information
--force (-f) forcibly build everything (ignore file timestamps)
--compiler (-c) specify the compiler type
--swig-cpp make SWIG create C++ files (default is C)
--swig-opts list of SWIG command line options
--swig path to the SWIG executable
--user add user include, library and rpath
--help-compiler list available compilers