Установили MySQLdb, работают за пределами virtualenv, но внутри его не существует. Как разрешить?

Я использую самые последние версии всего программного обеспечения (Django, Python, virtualenv, MySQLdb), и я не могу заставить это работать. Когда я запускаю "import MySQLdb" в приглашении python извне virtualenv, он работает, внутри него говорится "ImportError: Нет модуля с именем MySQLdb".

Я пытаюсь изучить веб-разработку Python и Linux. Я знаю, что проще всего использовать SQLLite, но я хочу узнать, как разрабатывать приложения большего масштаба, сопоставимые с тем, что я могу сделать в .NET. Я читал каждое сообщение в блоге в Google и каждый пост здесь, в StackOverflow, и все они предлагают, чтобы я запускал "sudo pip install mysql-python", но он просто говорит: "Требование уже выполнено: mysql-python в /usr/lib/pymodules/python 2.7"

Любая помощь будет оценена! Я застрял здесь и не хочу бросать полотенце и просто вернусь к этому в технологии Microsoft, потому что я даже не могу запустить базовую среду разработки.

Ответ 1

Если вы создали virtualenv с помощью переключателя --no-site-packages (по умолчанию), то установленные в системе дополнения, такие как MySQLdb, не включены в пакеты виртуальной среды.

Вам нужно установить MySQLdb с помощью команды pip, установленной с помощью virtualenv. Либо активируйте virtualenv с помощью bin/activate script, либо используйте bin/pip из виртуального файла, чтобы локально установить библиотеку MySQLdb.

В качестве альтернативы создайте новый virtualenv с системными сайтами-пакетами, включенными с помощью переключателя --system-site-package.

Ответ 2

  • source $ENV_PATH/bin/activate
  • pip uninstall MySQL-python
  • pip install MySQL-python

это сработало для меня.

Ответ 3

Я прошел через ту же проблему, но использование pip от virtualenv не решило проблему, поскольку я получил эту ошибку

error: could not delete '/Library/Python/2.7/site-packages/_mysql.so': Permission denied

Ранее я установил пакет sudo pip install mysql-python

Чтобы решить, скопируйте файлы /Library/Python/2.7/site-packages/MySQL_python-1.2.5-py2.7.egg-info и /Library/Python/2.7/site-packages/_mysql* в ~/v/lib/python-2.7/site-packages и включите /usr/local/mysql/lib в DYLD_LIBRARY_PATH переменную env.

Для второго шага я делаю export DYLD_LIBRARY_PATH=/usr/local/mysql/lib в ~/.profile