Установили 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