Después de instalar mecanizar , parece que no puedo importarlo.
He intentado instalar desde pip, easy_install y python setup.py install
desde este repositorio: https://github.com/abielr/mechanize . Todo esto fue en vano, ya que cada vez que entro en mi Python interactivo obtengo:
Python 2.7.3 (default, Aug 1 2012, 05:14:39)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import mechanize
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named mechanize
>>>
Las instalaciones que ejecuté anteriormente informaron que se habían completado con éxito, por lo que espero que la importación funcione. ¿Qué podría estar causando este error?
easy_install
? También, por favor confirmar la ruta completaeasy_install
,pip
y depython
.sys.path
para ver si está buscando en los lugares correctos,ls -laR /usr/local/lib/python2.7/dist-packages/mech*
para ver si hay problemas de permisos yimp.find_module("mechanize")
para distinguir entre los errores de no puedo encontrarlo y no puedo sobrevivir al importarlo?Respuestas:
En mi caso, es un problema de permiso. El paquete se instaló de alguna manera solo con permiso de root rw, ¡otro usuario simplemente no puede hacerlo!
fuente
sudo pip install ...
.sudo chmod -R ugo+rX /lib/python2.7/site-packages/
sudo chmod 777 /usr/local/lib/python3.6/site-packages
igual que el trucoTuve el mismo problema: la secuencia de comandos con
import colorama
estaba lanzando e ImportError, perosudo pip install colorama
me decía "paquete ya instalado".Mi solución: ejecutar PIP sin sudo :
pip install colorama
. Luego, pip aceptó que necesitaba ser instalado, lo instalé y se ejecutó mi script.Mi entorno es Ubuntu 14.04 de 32 bits; Creo que vi esto antes y después de activar mi virtualenv.
ACTUALIZACIÓN : aún mejor, uso
python -m pip install <package>
. El beneficio de esto es que, dado que está ejecutando la versión específica de Python en la que desea el paquete, pip instalará inequívocamente el paquete en el Python "correcto". Nuevamente, no use sudo en este caso ... luego obtiene el paquete en el lugar correcto, pero posiblemente con permisos de raíz (no deseados).fuente
Es el problema de la ruta de Python.
En mi caso, tengo Python instalado en:
y no hay un directorio de paquetes de sitio dentro de python2.6.
El paquete (SOAPpy) que instalé por pip se encuentra
Y el paquete de sitio no está en la ruta de Python, todo lo que hice fue agregar paquetes de sitio a PYTHONPATH permanentemente.
En el archivo de texto que aparece, agregue esta línea al final:
export PYTHONPATH = $ PYTHONPATH: /System/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/
fuente
El mecanismo de importación de Python funciona, realmente, así que:
fuente
sudo pip install
se instaló con privs de raíz, y en el momento de la importación algo está bombardeando por la falta de Acceso de lectura o escritura.He estado golpeando mi cabeza contra mi monitor en esto hasta que un pasante joven me dijo que el secreto es "instalar python setup.py" dentro del directorio del módulo.
Por alguna razón, ejecutar la configuración desde allí hace que simplemente funcione.
Para ser claros, si el nombre de su módulo es "foo":
Si intenta ejecutar setup.py desde cualquier otro directorio llamando su ruta, terminará con una instalación simplificada.
NO FUNCIONA:
FUNCIONA:
fuente
Pude corregir este problema con un enfoque combinado. Primero, seguí el consejo de Chris, abrí una línea de comando y escribí 'pip show packagename' Esto proporcionó la ubicación del paquete instalado.
Luego, abrí python y escribí 'import sys', luego 'sys.path' para mostrar dónde mi python busca los paquetes que importo. Por desgracia, la ubicación que se muestra en el primer paso NO estaba en la lista.
Paso final, escribí 'sys.path.append (' package_location_seen_in_step_1 '). Opcionalmente, puede repetir el paso dos para ver que la ubicación ahora está en la lista.
Paso de prueba, intente importar el paquete nuevamente ... funciona.
¿La baja? Es temporal y debe agregarlo a la lista cada vez.
fuente
Encontré esto al intentar usar el llavero que instalé a través de
sudo pip install keyring
. Como se menciona en las otras respuestas, es un problema de permisos en mi caso.Lo que funcionó para mí:
sudo pip uninstall keyring
-H
opción de sudo y reinstalé el llavero:sudo -H pip install keyring
Espero que esto ayude.
fuente
Soy nuevo en python. Solucioné este problema cambiando la ruta del intérprete del proyecto.
File -> Settings -> Project -> Project Interpreter
fuente
No pude hacer que mi PYTHONPATH funcione correctamente. Me di cuenta de agregar
export
solucionó el problema:(funcionó)
vs.
(no funcionó)
fuente
En mi caso, había corrido
pip install Django==1.11
y no se importaría delpython
intérprete.Navegando a través de los comandos de pip encontré
pip show
que se veía así:Observe que la ubicación dice '3.4'. Descubrí que el
python
comando estaba vinculado apython2.7
Justo al lado de eso encontré un enlace llamado,
python3
así que lo usé. También puede cambiar el enlace apython3.4
. Eso también lo arreglaría.fuente
En mi caso, era un problema con la falta de un archivo init .py en el módulo, que quería importar en un entorno Python 2.7.
Python 3.3+ tiene paquetes de espacio de nombres implícitos que le permiten crear paquetes sin un archivo init .py.
fuente
Si las otras respuestas mencionadas no funcionan para usted, intente eliminar su caché de pip y reinstalar el paquete. Mi máquina ejecuta Ubuntu14.04 y se encuentra debajo
~/.cache/pip
. Eliminar esta carpeta me sirvió.fuente
Además, asegúrese de no confundir
pip3
conpip
. Lo que encontré fue que el paquete instaladopip
no funcionabapython3
y viceversa.fuente
Cuando instala a través de
easy_install
opip
, ¿se está completando con éxito? ¿Cuál es la salida completa? ¿Qué instalación de Python estás usando? Es posible que necesite usarsudo
antes de su comando de instalación, si está instalando módulos en un directorio del sistema (si está utilizando la instalación de Python del sistema, tal vez). No hay mucha información útil en su pregunta para salir, pero algunas herramientas que probablemente ayudarán incluyen:echo $PYTHONPATH
y / oecho $PATH
: al importar módulos, Python busca una de estas variables de entorno (listas de directorios,:
delimitadas) para el módulo que desea. Los problemas de importación a menudo se deben a que el directorio correcto está ausente de estas listaswhich python
,which pip
owhich easy_install
: le indicarán la ubicación de cada ejecutable. Puede ser útil saberlo.Use virtualenv , como sugiere @JesseBriggs. Funciona muy bien
pip
para ayudarlo a aislar y administrar los módulos y el entorno para proyectos separados de Python.fuente
Tuve este problema exacto, pero ninguna de las respuestas anteriores funcionó. Me volvió loco hasta que noté que sys.path era diferente después de haber importado del proyecto principal. Resultó que había usado importlib para escribir una pequeña función para importar un archivo que no estaba en la jerarquía del proyecto. Mala idea: olvidé que había hecho esto. Peor aún, el proceso de importación se vio afectado por el sys.path, y lo dejó así. Muy mala idea.
La solución fue detener eso, y simplemente poner el archivo que necesitaba para importar al proyecto. Otro enfoque habría sido colocar el archivo en su propio proyecto, ya que necesita ser reconstruido de vez en cuando, y la reconstrucción puede o no coincidir con la reconstrucción del proyecto principal.
fuente
Tuve este problema con 2.7 y 3.5 instalados en mi sistema al intentar probar un bot de telegramas con Python-Telegram-Bot .
No pude hacerlo funcionar después de instalar con pip y pip3, con sudo o sin él. Siempre tengo:
Leer el mensaje de error correctamente me dice que python está buscando en el directorio actual a
telegram.py
. Y a la derecha, tenía un script allí llamado telegram.py y Python lo cargó cuando llaméimport
.Conclusión, asegúrese de no tener ninguno
package.py
en su directorio de trabajo actual cuando intente importar. (Y lea el mensaje de error a fondo).fuente
Tuve un problema similar (en Windows) y la causa raíz en mi caso fue el software ANTIVIRUS . Tiene la función de "Autocontención", que envuelve el proceso en ejecución con algún tipo de máquina virtual. Los síntomas son:
pip install somemodule
funciona bien en una ventana de línea de cmd yimport somemodule
falla cuando se ejecuta desde otro proceso con el errorEspero que le ahorre tiempo a alguien :)
fuente
Tal vez un poco fuera de tema, pero tuve problemas para hacerlo
import PyYAML
. Señala que necesitas hacerloimport yaml
. (supongo que es un rtfm clásico ...)fuente
Tuve un problema similar al usar Django. En mi caso, podría importar el módulo desde el shell Django, pero no desde un .py que importó el módulo.
El problema era que estaba ejecutando el servidor Django (por lo tanto, ejecutando el .py) desde un virtualenv diferente desde el que se había instalado el módulo.
En cambio, la instancia de shell se estaba ejecutando en el virtualenv correcto. Por lo tanto, por qué funcionó.
fuente
¡¡¡Esto funciona!!!
Esto sucede a menudo cuando el módulo se instala en una versión anterior de python u otro directorio, no se preocupe, ya que la solución es simple. - Importar módulo desde el directorio en el que está instalado el módulo. Puede hacer esto importando primero el
sys
módulo de Python y luego importando desde la ruta en la que está instalado el módulofuente
La mayoría de los casos posibles ya se han cubierto en soluciones, solo compartiendo mi caso, me ocurrió que instalé un paquete en un entorno (por ejemplo
X
) y que estaba importando el paquete en otro entorno (por ejemploY
). Por lo tanto, siempre asegúrese de importar el paquete desde el entorno en el que lo instaló.fuente
Algo que funcionó para mí fue:
El comando no requiere sudo. Esto fue probado en OSX Mojave.
fuente
En mi caso, también tuve que instalar los módulos para el superusuario.
Aparentemente, el superusuario no puede acceder a los archivos de los usuarios normales bajo ciertas circunstancias.
fuente
Para mí fue asegurar que la versión del módulo estuviera alineada con la versión de Python que estaba usando. Construí la imagen en una caja con Python 3.6 y luego la inyecté en una imagen de Docker que tenía instalado 3.7 , y luego me golpeé la cabeza cuando Python me decía que el módulo no estaba instalado ...
36m
para Python 3.6bsonnumpy.cpython-36m-x86_64-linux-gnu.so
37m
para Python 3.7bsonnumpy.cpython-37m-x86_64-linux-gnu.so
fuente
pip install
La versión que coincide con la versión de Python que está utilizando. ¿Qué error obtienes y cuál es la salida depython --version
Sé que esta es una publicación súper antigua, pero para mí, tuve un problema con una python de 32 bits y una de 64 bits instalada. Una vez que desinstalé el python de 32 bits, todo funcionó como debería.
fuente
He resuelto mi problema de que las mismas bibliotecas funcionaban bien en un proyecto (A) pero importar esas mismas bibliotecas en otro proyecto (B) causó un error. Estoy usando Pycharm como IDE en el sistema operativo Windows. Entonces, después de probar muchas soluciones potenciales y no resolver el problema, hice estas dos cosas (carpeta "Venv" eliminada e intérprete reconfigurado):
1-En el proyecto (B), había una carpeta llamada ("venv"), ubicada en Bibliotecas externas /. Eliminé esa carpeta.
2-Paso 1 (al eliminar la carpeta "venv") se produce un error en la configuración del intérprete de Python, y aparece un mensaje en la parte superior de la pantalla que dice "Intérprete de Python no válido seleccionado para el proyecto" y "Configurar el intérprete de Python", seleccione ese enlace y abre una nueva ventana Allí, en la lista desplegable "Intérprete del proyecto", hay una línea de color rojo que muestra un intérprete no válido anterior. Ahora, abra esta lista y seleccione el intérprete de Python (en mi caso, es Python 3.7). Presiona "Aplicar" y "Aceptar" en la parte inferior y listo.
Nota: Potencialmente, el problema era que el Entorno virtual de mi proyecto (B) no reconocía las bibliotecas ya instaladas y en funcionamiento.
fuente
Si está utilizando un entorno virtual, use en
pipenv install <module name>
lugar depip install <module name>
Trabajó para mi.
fuente
También tuve este problema ... el paquete se instaló en Python 3.8.0 pero VS Code estaba ejecutando mi script usando una versión anterior (3.4)
arreglar en terminal:
py .py
Asegúrese de instalar el paquete en la versión correcta de Python
fuente
Como lo hizo un amigo hoy, esto es lo que me ayudó (estoy usando Windows):
Presione 'Configuración' -> 'Proyecto' -> 'Intérprete de proyecto'. Aquí en la ventana de la derecha, hay una línea con el título 'Intérprete del proyecto' a la izquierda. Haga clic en esta línea y se abrirán varias líneas adicionales.
Ahora presione la línea 'Mostrar todo'. Se abrirá una ventana. En esta ventana, presione el pequeño signo '+' en la esquina superior derecha.
Una nueva ventana se abrirá. A la izquierda hay 4 pestañas, presione la más superior, que dice 'Virtualenv Environment'. Ahora, en la ventana de la derecha, marque la opción 'Entorno existente'. La línea 'Intérprete' se hará bien visible. Presione el botón '...' a la derecha de la línea.
Ahora, se abrirá una ventana de exploración. Busque el directorio en el que instaló Python . No el que tiene PyCharm. Cuando llegue allí, elija el archivo 'python.exe' y presione OK (la ventana desaparecerá).
Presione OK nuevamente (esta ventana también desaparecerá).
Ahora, en esta ventana, asegúrese de que la nueva línea que creó esté marcada y presione OK nuevamente.
Ahora, todos los paquetes instalados deberían estar visibles en el intérprete del proyecto y su programa debería leerlos.
fuente
La solución más simple que funcionó para mí que no veo mencionada en este hilo:
Tengo instaladas varias versiones de Python pero estaba tratando de usar Python3.7, así que tuve que usar:
sudo pip3.7 install <package>
fuente