qué que módulos modulos llamar lista librerias libreria incluidas implementa cliente python shared-libraries pip include-path pyodbc

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