microsoft libreria python pip pyodbc

libreria - python connect to sql server



Python pip no puede localizar pyodbc (6)

Acabo de intentar instalar pyodbc también y golpeé la misma pared. Creo que el problema que usted y yo hemos encontrado es que --también - externo consume el siguiente argumento también. Así que realmente necesitas escribir:

sudo pip install --allow-external pyodbc pyodbc

Luego cometí otro error sobre fuentes no verificadas, de modo que el comando que realmente funcionó para mí fue:

sudo pip install --allow-external pyodbc --allow-unverified pyodbc pyodbc

Tenga en cuenta que una vez hecho esto, los permisos en los archivos instalados impidieron a los usuarios normales acceder a pyodbc. Así que fui ajustando manualmente los permisos en todos los paquetes instalados (parecía más fácil que encontrar solo los archivos necesarios para pyodbc).

cd /usr/local/lib/python2.7/ chmod -R o=g dist-packages

Según la sugerencia de EMS, he agregado un problema al rastreador de errores Pip. Se puede encontrar en:

https://github.com/pypa/pip/issues/1893

Usando virtualenv y tratando de instalar pyodbc. Todos los recursos que puedo encontrar afirman que esto debería ser extremadamente sencillo. Después de todas las instalaciones básicas de MySQL, etc., simplemente haga:

pip install pyodbc

Sin embargo, estoy viendo un error muy extraño. No tiene nada (por lo que puedo decir) que ver con bibliotecas faltantes, y después de buscar en Google este tipo de error durante mucho tiempo, no puedo encontrar nada constructivo en absoluto.

(local-dev)espears@espears-w ~ $ pip install pyodbc Downloading/unpacking pyodbc Could not find any downloads that satisfy the requirement pyodbc Some externally hosted files were ignored (use --allow-external pyodbc to allow). Cleaning up... No distributions at all found for pyodbc Storing debug log for failure in /home/espears/.pip/pip.log

Así que intenté con la opción "permitir-externo" y no ayuda:

(local-dev)espears@espears-w ~ $ pip install --allow-external pyodbc You must give at least one requirement to install (see "pip help install")

Pero la documentación de ayuda hace que parezca que estoy usando esta opción correctamente, por ejemplo, de la salida de la ejecución de la pip help install :

Package Index Options: ... --allow-external <package> Allow the installation of externally hosted files

Aquí está el resultado en el archivo de registro PIP:

(local-dev)espears@espears-w ~ $ cat /home/espears/.pip/pip.log Downloading/unpacking pyodbc Getting page https://pypi.python.org/simple/pyodbc/ URLs to search for versions for pyodbc: * https://pypi.python.org/simple/pyodbc/ Analyzing links from page https://pypi.python.org/simple/pyodbc/ Skipping link http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/); not a file Skipping link http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/); not a file Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Not searching http://code.google.com/p/pyodbc/downloads/list (from https://pypi.python.org/simple/pyodbc/) for files because external urls are disallowed. Could not find any downloads that satisfy the requirement pyodbc Some externally hosted files were ignored (use --allow-external pyodbc to allow). Cleaning up... Removing temporary dir /home/espears/.virtualenvs/local-dev/build... No distributions at all found for pyodbc Exception information: Traceback (most recent call last): File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/basecommand.py", line 122, in main status = self.run(options, args) File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/commands/install.py", line 270, in run requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle) File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/req.py", line 1157, in prepare_files url = finder.find_requirement(req_to_install, upgrade=self.upgrade) File "/home/espears/.virtualenvs/local-dev/local/lib/python2.7/site-packages/pip/index.py", line 285, in find_requirement raise DistributionNotFound(''No distributions at all found for %s'' % req) DistributionNotFound: No distributions at all found for pyodbc

Parece que si puedo conseguir que --allow-external opción --allow-external , funcionará porque ve claramente la ubicación común para obtener pyodbc.

Pero estoy sorprendido de por qué se necesita esto, cuando prácticamente todas las referencias para instalar pyodbc no tienen que deshabilitarse para habilitar enlaces externos. Hoy también he estado instalando muchos paquetes todo el día, con pocos problemas y ciertamente no encuentro esta necesidad de allow-external en ningún otro caso.

Estoy usando la versión 1.5 de pip con Python 2.7.3 en Ubuntu 12.04.


FWIW, en ms windows, todo lo que no sea instalar el binario (windows install) para mí fue engorroso en un entorno híbrido windows / cygwin.

Opté por usar pypyodbc ya que es Python puro y no pypyodbc ningún cambio para mi desarrollo de Windows / Linux. Se puede ver como un reemplazo casi instantáneo de pyodbc sin necesidad de compilación, y, por supuesto, se puede instalar fácilmente con pip install pypyodbc .



La ejecución de pip install --allow-external pyodbc --allow-unverified pyodbc pyodbc funcionará si la estructura del directorio PyPI es correcta.

Según la salida de pip.log cuando publiqué originalmente esta respuesta, creo que la estructura de directorios del sitio web del paquete estaba dañada. Siempre puede solucionar este tipo de problema especificando la URL del paquete como pip install https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/pyodbc/pyodbc-3.0.7.zip , los enlaces para diferentes versiones se describen here .


Tanto --allow-unverified como --allow-external toman el nombre del paquete como un argumento.

From pip help install: --allow-external <package> Allow the installation of a package even if it is externally hosted --allow-unverified <package> Allow the installation of a package even if it is hosted in an insecure and unverifiable way

  • --allow-external requiere un argumento (nombre de th externo para permitir).
  • Lo mismo se --allow-unverified a --allow-unverified también.
  • Con pip install --allow-external pyodbc , está permitiendo la llamada externa pyodbc
  • pip install --allow-external pyodbc pydodbc es lo que necesita, primero pyodbc permite a ese externo, el segundo en realidad le dice a pip qué paquete debe instalar.

    Desde la ayuda de pip instalar: --allow-external Permitir la instalación de un paquete incluso si está alojado externamente

Así que tu uso debe ser

pip install <pkg> --allow-unverified <pkg> --allow-external <pkg>

o el poco confuso:

pip install --allow-unverified <pkg> --allow-external <pkg> <pkg>

NO use --allow-all-external cuando solo quiera permitir uno y no ALL . Mata todo el propósito de poner en el control de seguridad.


Tuve éxito cuando lo instalé con

sudo pip install --allow-external pyodbc --allow-unverified pyodbc pyodbc

Sin embargo, también necesitaba el paquete unixodbc-dev para que Pyodbc compile realmente.