использование Mysql и SqlAlchemy в Pyramid Framework

Pyramid Framework поставляется с образцом учебника по sql-алхимии, в котором используется sqlite. Проблема в том, что я хочу использовать mysql, поэтому я меняю это

sqlalchemy.url = sqlite:///%(here)s/tutorial.db

В это

sqlalchemy.url = mysql://root:22password@localhost/alchemy

когда я пытаюсь бежать

../bin/pserve development.ini --reload

Это дает мне следующую ошибку

 File "build/bdist.linux-i686/egg/sqlalchemy/connectors/mysqldb.py", line 52, in dbapi
ImportError: No module named MySQLdb

Я понимаю, что я должен включить зависимости моего приложения в setup.py, но я не знаю, что включить прямо сейчас, помогите, пожалуйста, мой setup.py выглядит так

import os
import sys

from setuptools import setup, find_packages

here = os.path.abspath(os.path.dirname(__file__))
README = open(os.path.join(here, 'README.txt')).read()
CHANGES = open(os.path.join(here, 'CHANGES.txt')).read()

requires = [
    'pyramid',
    'SQLAlchemy',
    'transaction',
    'pyramid_tm',
    'pyramid_debugtoolbar',
    'zope.sqlalchemy',
    ]

if sys.version_info[:3] < (2,5,0):
    requires.append('pysqlite')

setup(name='tutorial',
      version='0.0',
      description='tutorial',
      long_description=README + '\n\n' +  CHANGES,
      classifiers=[
        "Programming Language :: Python",
        "Framework :: Pylons",
        "Topic :: Internet :: WWW/HTTP",
        "Topic :: Internet :: WWW/HTTP :: WSGI :: Application",
        ],
      author='',
      author_email='',
      url='',
      keywords='web wsgi bfg pylons pyramid',
      packages=find_packages(),
      include_package_data=True,
      zip_safe=False,
      test_suite='tutorial',
      install_requires = requires,
      entry_points = """\
      [paste.app_factory]
      main = tutorial:main
      [console_scripts]
      populate_tutorial = tutorial.scripts.populate:main
      """,
      )

person Madawar    schedule 07.01.2012    source источник


Ответы (4)


Попробуйте добавить "MySQLdb" в список необходимых. С sqlite3 все было в порядке, поскольку он поставляется с python (начиная с версии 2.5), а MySQLdb - нет, и его необходимо устанавливать отдельно.

ОБНОВИТЬ:

Вместо этого попробуйте "mysql-python" в списке требований.

person DaedalusFall    schedule 07.01.2012
comment
Я уже пробовал это, и это дает мне следующие ошибки Установлено /home/dennis/Desktop/pyramidtut/tutorial Обработка зависимостей для tutorial==0.0 Поиск чтения MySQLdb pypi.python.org/simple/MySQLdb Не удалось найти индексную страницу для «MySQLdb» (возможно, с ошибкой?) Сканирование индекса всех пакетов (это может занять некоторое время) Чтение pypi.python.org/simple Не найдены локальные пакеты или ссылки для скачивания для MySQLdb Лучшее соответствие: нет - person Madawar; 08.01.2012
comment
и когда я запускаю импорт MySQLdb в оболочке python, он не выдает ошибку, поэтому я уверен, что он правильно установлен - person Madawar; 08.01.2012
comment
У Pyramid должен быть набор пакетов, отличный от оболочки python вашей системы (он использует virtualenv без пакетов-сайтов), поэтому в вашей системе установлен MySQLdb, но не в virtualenv пирамиды. - person DaedalusFall; 08.01.2012
comment
я новичок, так что мне сделать, чтобы он работал в virtualenv? - person Madawar; 08.01.2012
comment
Вы пробовали мой обновленный ответ ("mysql-python" в списке требований)? В моем последнем комментарии я просто объяснял, почему вы можете импортировать MySQLdb, а Pyramid — нет. Pyramid позаботится о том, чтобы вещи из списка обязательных были установлены в файле virtualenv. - person DaedalusFall; 08.01.2012
comment
это почти сработало, но выдало следующую ошибку при загрузке с sourceforge EnvironmentError: mysql_config not found - person Madawar; 08.01.2012

Хорошо, я решил свой вопрос, следуя инструкциям на этой странице http://www.saltycrane.com/blog/2010/02/install-mysqldb-virtualenv-ubuntu-karmic/

person Madawar    schedule 08.01.2012
comment
Пожалуйста, добавьте краткое изложение вашего решения к вашему ответу. Лучше всего с добавленными/измененными строками в setup.py - person Don Question; 08.01.2012

Существует огромный список неофициальных двоичных файлов Windows для пакетов расширений Python, которые чрезвычайно полезны для пользователей Windows.

http://www.lfd.uci.edu/~gohlke/pythonlibs/

person ajknzhol    schedule 05.10.2013

Решено в среде ubuntu

  1. sudo apt-get build-dep python-mysqldb
  2. источник /bin/active && pip установить MySQL-python
person user2701898    schedule 12.12.2013