python - tutorial - sqlalchemy delete object
ImportError: Ningún módulo llamado sqlalchemy (8)
¡Así que aquí hay una idea!
Ya que parecía funcionar en otro lugar.
instale python-virtualenv
y opcionalmente puede instalar virtualenv-wrapper (que es muy bueno para crear proyectos, etc.)
En cada env, puedes tener diferentes versiones de huevos. En otras palabras, podría tener sqlalchemy 1 y sqlaclhemy 1.5 en dos envs diferentes y no entrarán en conflicto entre sí. Parece que tienes un problema con tus huevos actualmente instalados.
Así que, aquí vamos:
virtualenv --no-site-packages foo
source foo/bin/activate
El parámetro --no-site-packages creará un virtualenv y no usará los paquetes ya instalados en su computadora. Es más o menos como una instalación de Python.
source foo/bin/activate
carga el virtualenv.
No es tan amigable para el usuario. Y es por eso que existe http://www.doughellmann.com/projects/virtualenvwrapper/ .
Dicho esto, debería ver algo así como thant en su terminal "(foo) user @ domain $:" una vez que su virtualenv esté activado. ¡Significa que puedes continuar!
Entonces tienes que hacer.
python setup.py develop
tu proyecto. Debería descargar e instalar dependencias de su proyecto en el virtualenv ubicado en foo
. Si necesita instalar algo más, utilice pip
o easy_install
sin usar sudo
. Cuando usas virtualenv, casi nunca necesitas usar sudo
. Sudo instalará el paquete en su instalación global de python mientras no sea necesario y no sea realmente deseable.
Si sucede algo en su entorno virtual, siempre puede eliminarlo y crear uno nuevo. Esto no es gran cosa. No hay necesidad de meterse con nada. No funciona? comience de nuevo, pip install -U
si es necesario, defina las versiones si es necesario, etc.
Por último, pero no menos importante, en las otras respuestas, parece que la importación cambió. Si las nuevas versiones de frasco-sqlalchemy se encuentran en otro lugar, debe actualizar su importación o instalar la versión que solía utilizar.
No puedo encontrar un módulo en python, aunque easy_install dice que ya está instalado. ¿Alguna idea de cómo resolver esto isseue?
$ python -c "from flaskext.sqlalchemy import SQLAlchemy"
Traceback (most recent call last):
File "<string>", line 1, in <module>
ImportError: No module named sqlalchemy
$ python -V
Python 2.7
$ sudo easy_install sqlalchemy
Searching for sqlalchemy
Best match: SQLAlchemy 0.7.7
Adding SQLAlchemy 0.7.7 to easy-install.pth file
Using /usr/lib/python2.7/site-packages
Processing dependencies for sqlalchemy
Finished processing dependencies for sqlalchemy
$ sudo pip install SQLAlchemy --upgrade Requisito ya actualizado: SQLAlchemy en /usr/lib/python2.7/site-packages Limpiar ...
Aunque pip dice que está instalado. Pero no puedo encontrarlos en la salida de sys.path.
$ sudo python -c "import sys;print sys.path" ['''',
''/usr/lib/python2.7/site-packages/Flask_SQLAlchemy-0.15-py2.7.egg'',
''/usr/lib/python2.7/site-packages/Flask-0.8-py2.7.egg'',
''/usr/lib/python2.7/site-packages/Jinja2-2.6-py2.7.egg'',
''/usr/lib/python2.7/site-packages/Werkzeug-0.8.3-py2.7.egg'',
''/usr/lib/python2.7/site-packages/Flask_WTF-0.5.2-py2.7.egg'',
''/usr/lib/python2.7/site-packages/WTForms-0.6.3-py2.7.egg'',
''/usr/lib/python2.7/site-packages/Flask_Mail-0.6.1-py2.7.egg'',
''/usr/lib/python2.7/site-packages/blinker-1.2-py2.7.egg'',
''/usr/lib/python2.7/site-packages/lamson-1.1-py2.7.egg'',
''/usr/lib/python2.7/site-packages/python_daemon-1.6-py2.7.egg'',
''/usr/lib/python2.7/site-packages/nose-1.1.2-py2.7.egg'',
''/usr/lib/python2.7/site-packages/mock-0.8.0-py2.7.egg'',
''/usr/lib/python2.7/site-packages/chardet-1.0.1-py2.7.egg'',
''/usr/lib/python2.7/site-packages/lockfile-0.9.1-py2.7.egg'',
''/usr/lib/python2.7/site-packages/Flask_FlatPages-0.2-py2.7.egg'',
''/usr/lib/python2.7/site-packages/Markdown-2.1.1-py2.7.egg'',
''/usr/lib/python2.7/site-packages/PyYAML-3.10-py2.7-linux-i686.egg'',
''/usr/lib/python2.7/site-packages/uWSGI-1.0.3-py2.7.egg'',
''/usr/lib/python2.7/site-packages/MySQL_python-1.2.3-py2.7-linux-i686.egg'',
''/usr/lib/python27.zip'', ''/usr/lib/python2.7'',
''/usr/lib/python2.7/plat-linux2'', ''/usr/lib/python2.7/lib-tk'',
''/usr/lib/python2.7/lib-old'', ''/usr/lib/python2.7/lib-dynload'',
''/usr/lib/python2.7/site-packages'',
''/usr/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg-info'']
¿ flaskext.sqlalchemy
? Parece que tiene instalado el paquete SQLAlchemy pero no la extensión del matraz. Pruebe pip install Flask-SQLAlchemy
o easy_install Flask-SQLAlchemy
. Está disponible en la tienda de quesos, por lo que cualquiera de las utilidades debe recogerlo.
Acabo de experimentar el mismo problema. Aparentemente, hay un nuevo método de distribución, el código de extensión ya no se almacena en flaskext
.
Fuente: Flask CHANGELOG Esto funcionó para mí:
from flask_sqlalchemy import SQLAlchemy
Está bien, he vuelto a instalar el paquete a través de pip, incluso eso no ayudó. Y luego sincronicé todo el directorio /usr/lib/python-2.7 desde otra máquina en funcionamiento con una configuración similar a la máquina actual. Comenzó a funcionar. No tengo ni idea, ¿qué pasaba con mi configuración? Veo alguna diferencia de salida de "print sys.path" antes y ahora. pero ahora mi problema se resuelve con este trabajo.
EDIT: encontré la solución real para mi configuración. actualizar "sqlalchemy solo no resuelve el problema" También necesito actualizar el flask-sqlalchemy
que resolvió el problema.
Este código funciona perfectamente:
import sqlalchemy
¿Tal vez instaló el paquete en otra versión del intérprete?
Además, como señaló Shawley, debe tener instalada la extensión del matraz para que sea accesible.
Esto funciona para mí:
sudo pip install flask_sqlalchemy
sudo pip install sqlalchemy
Luego en tu código usa:
from flask_sqlalchemy import SQLAlchemy
La solución para mí fue usar:
from flask_sqlalchemy import SQLAlchemy
en lugar de
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.sqlalchemy import SQLAlchemy