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:
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
.
Hay una forma "más fácil" de instalar pyodbc en windows en un virualenv usando easy_install :
- descargar el último instalador de pyodbc para windows
- activa tu virtualenv
easy_install pyodbc-3.0.7.win32-py2.7.exe
tal como se usa para pywin32, vea: ¿Cómo puedo usar pywin32 con un virtualenv sin tener que incluir la carpeta de paquetes de sitio del entorno host?
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 externapyodbc
pip install --allow-external pyodbc pydodbc
es lo que necesita, primeropyodbc
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.